[PYTHON] [Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen

Bis zum letzten Mal

Bis zum letzten Mal

Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern 1 vorherzusagen Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern 2 vorherzusagen

Zusammenfassend,

Wetter Precision Recall F-Score
Regen 0.54 0.67 0.6
Fein 0.83 0.74 0.78
durchschnittlich 0.74 0.72 0.72

Diese Geschichte

Dieses Mal möchte ich die Genauigkeit verbessern, indem ich das Modell, die Lehrerdaten und die erklärenden Variablen verbessere.

Speziell

Es wird da sein.

Analyse

Dreiwertige Klassifizierung

Bisher war es eine binäre Klassifikation von "fein" und "Regen". Dies enthält jedoch eine große Menge an "Trübung", was einer der Faktoren war, die die Genauigkeit verringerten. Daher werde ich es einfach als ternäre Klassifikation einschließlich "bewölkt" versuchen.

Die Bedingungen zum Generieren von Lehrerdaten sind wie folgt.

flag = []
for tk in tenki_list:
	if "Regen" in tk:
		flag.append(0)
	elif "Fein" in tk:
		flag.append(2)
	else:
		flag.append(1)

Regen hat höchste Priorität, gefolgt von schönem Wetter und der letzten verbleibenden Wolke.

Das Testergebnis ist wie folgt. Jede Wahrscheinlichkeit ist die durchschnittliche Wahrscheinlichkeit im Wetter. Sortiert in absteigender Reihenfolge der Regenwahrscheinlichkeit.

Wetter Regenwahrscheinlichkeit Bewölkte Wahrscheinlichkeit Klare Wahrscheinlichkeit
Manchmal sonnig nach starkem Regen, begleitet von Verschüttungen 98% 0% 2%
Bewölkt nach Regen, begleitet von Hagel 97% 0% 3%
Regen 96% 1% 3%
Starkregen 95% 1% 4%
Sonniger vorübergehender Regen 95% 0% 5%
Bewölkt und manchmal sonnig nach einem vorübergehenden Regen 91% 1% 8%
Manchmal sonnig nach bewölkt 90% 3% 6%
Regen Manchmal sonnig Temporärer Nebelregen 89% 2% 10%
Vorübergehend bewölkt nach starkem Regen 80% 3% 17%
Bewölkt und manchmal regnerisch 77% 4% 19%
Bewölkt und manchmal sonnig mit vorübergehendem Regen und Donner 74% 5% 21%
Vorübergehend bewölkt nach Regen 72% 6% 22%
Sonnig nach Regen 72% 4% 24%
Bewölkter vorübergehender Regen 71% 5% 24%
Bewölkt nach Regen 71% 3% 26%
Bewölkt manchmal Regen 70% 5% 25%
Manchmal bewölkt nach Regen 67% 3% 29%
Vorübergehender bewölkter Regen 63% 7% 30%
Bewölkt nach klar 63% 4% 33%
Regnerisch und manchmal bewölkt 62% 8% 30%
Regen manchmal bewölkt 61% 4% 35%
Sonnig und manchmal bewölkt 60% 3% 37%
Bewölkt und manchmal sonnig 59% 5% 36%
Regen nach bewölkt 57% 7% 36%
Vorübergehender Regen nach schönem Wetter, begleitet von Donner 52% 11% 36%
Vorübergehende Geldstrafe nach Bewölkung 51% 6% 44%
Manchmal bewölkt nach einem vorübergehenden Regen 50% 7% 44%
Temporärer Regen nach bewölkt 49% 10% 41%
Wolkig 45% 8% 47%
Lichtwolke 42% 7% 52%
Leicht bewölkt vorübergehend klar 38% 10% 52%
Sonnig Temporär bewölkt 38% 8% 55%
Manchmal sonnig nach leicht bewölkt 38% 11% 52%
Nach schönem Wetter vorübergehend bewölkt 34% 9% 57%
Leicht bewölkt und manchmal sonnig 34% 8% 58%
Wolkig 33% 7% 60%
Teilweise bewölkt 33% 9% 58%
Bewölkt und sonnig nach Regen 31% 13% 56%
Fein 30% 9% 61%
Sonnig und vorübergehend bewölkt 30% 8% 62%
Leicht bewölkt nach schönem Wetter 28% 11% 61%
Manchmal bewölkt nach schönem Wetter 27% 8% 65%
Sonnig 25% 7% 68%
Sonnig nach bewölkt 22% 10% 68%
Manchmal regnet es nach bewölkt 20% 8% 72%
Bewölkt und sonnig nach einem vorübergehenden Regen 20% 11% 70%
Bewölkt und manchmal sonnig und dann vorübergehender Regen 18% 10% 73%
Nach sonnigem Regen manchmal bewölkt 4% 5% 91%

Infolgedessen wird keine Trübung vorhergesagt. (Ernsthaft)

Da die Lehrerdaten im obigen bedingten Ausdruck wie folgt lauten, ist es meiner Meinung nach sehr schwierig, die Trübung abzuschätzen.

Wetter Prozentsatz
Regen 33%
Wolkig 7%
Fein 59%

Damit fühlt es sich an, als würde man nur das offensichtliche "trübe" spielen. Wenn Sie jedoch zum Beispiel zuerst die Bedingung einbringen, dass "Bewölkung eingeschlossen ist", nimmt die Anzahl von Regen und schönem Wetter zu stark ab und es ist nutzlos. Hmmm schwer.

Wenn die durchschnittliche AUC jedoch nur für "Regen" und "Fein" berechnet wird, beträgt sie 0,720, und es scheint, dass sich die Genauigkeit dieser beiden verbessert hat. Die Regen- und klaren Statistiken sind wie folgt.

Wetter precision recall f1-score
Regen 0.60 0.76 0.67
Fein 0.69 0.71 0.70
durchschnittlich 0.65 0.74 0.69

Anscheinend hat sich die Schätzgenauigkeit von "Regen" verbessert.

Zunahme der Epoche

Das letzte Mal habe ich es mit Epoch = 50 gemacht, aber dieses Mal werde ich Epoch auf 100 setzen. Die Lehrerdaten sind die gleichen wie beim letzten Mal und sind eine binäre Klassifizierung von "Regen" und "Fein".

Die durchschnittliche AUC betrug 0,724, was genauer ist als die vorherigen und ternären Klassifikationen. (Epoche wichtig)

Die Statistiken sind wie folgt.

Wetter precision recall f1-score
Regen 0.53 0.77 0.63
Fein 0.86 0.68 0.76
durchschnittlich 0.76 0.71 0.72

Es fühlt sich an, als wäre die Präzision hoch.

Hinzufügung der Verarbeitung der erklärenden Variablen (Bild)

Bis zu diesem Punkt wurden die erklärenden Variablen als Bilddaten des Vortages für 3 Kanäle verwendet. Die Daten des ursprünglichen Kartenbildes sind jedoch Informationen, die zu jeder Zeit üblich sind und bei der Klassifizierung keine Bedeutung haben. Daher werden wir erwägen, "geänderte" Informationen einzubeziehen, indem wir die Differenz vom Vortag berücksichtigen.

In Code geschrieben sieht es so aus:

    """In Differenzserien konvertieren"""
    img_mat_new = np.zeros((img_mat.shape[0],3*2,img_mat.shape[2],img_mat.shape[3]),dtype=np.float32)
    img_mat_new = img_mat_new[0:-1] #Um eins reduzieren
    for l in range(1,len(img_mat)):
        """Unterschied"""
        img_mat_new[l-1,0,:,:] = img_mat[l-1,0,:,:] - img_mat[l,0,:,:]
        img_mat_new[l-1,1,:,:] = img_mat[l-1,1,:,:] - img_mat[l,1,:,:]
        img_mat_new[l-1,2,:,:] = img_mat[l-1,2,:,:] - img_mat[l,2,:,:]
        """dieser Tag"""
        img_mat_new[l-1,3,:,:] = img_mat[l,0,:,:]
        img_mat_new[l-1,4,:,:] = img_mat[l,1,:,:]
        img_mat_new[l-1,5,:,:] = img_mat[l,2,:,:]

Vergessen Sie nicht, die Lehrerdaten um einen Tag zu reduzieren.

Setzen Sie in diesem Zustand den Eingangskanal auf 6 und führen Sie ihn in das Modell ein.

Dann fällt die durchschnittliche AUC auf 0,658. (Das ist es)

Die Statistiken sind wie folgt.

Wetter precision recall f1-score
Regen 0.57 0.48 0.52
Fein 0.78 0.83 0.8
durchschnittlich 0.71 0.72 0.71

Die Genauigkeit des schönen Wetters hat sich verbessert, aber der Regen ist nicht gut. Gut schwierig.

Versuchen Sie, die Bilddaten zu ändern

Was ist, wenn ich die Bilddaten in einen anderen Typ ändere? Bisher betrug die Auflösung 640 x 480, aber ändern wir sie in ein hochauflösendes Bild von 3000 x 3000. Das Problem ist jedoch das ** sichtbare ** Bild. (Das heißt, das Licht der Sonne, beeinflusst von den Jahreszeiten)

Das Bild sieht wie folgt aus.

jpn.14123117.jpg

Quelle: Bereitgestellt von der Kochi University, Universität Tokio, Meteorological Agency

Wow, da ist ein schwarzer Fleck. .. ..

Nun, es ist eine Prüfung.

Die durchschnittliche AUC beträgt 0,675 und ist damit niedriger als die herkömmliche.

Die Statistiken sind wie folgt.

Wetter precision recall f1-score
Regen 0.69 0.45 0.54
Fein 0.77 0.9 0.83
durchschnittlich 0.75 0.76 0.74

Mit Blick auf FScore wird die Genauigkeit verbessert. Da die AUC 0,79 beträgt, hat sich die Genauigkeit des schönen Wetters verbessert, aber die Genauigkeit des Regens scheint leicht abgenommen zu haben.

Ergebnis

Ich habe verschiedene Dinge ausprobiert,

Es wurde wie.

Ist es ein gutes Muster, die Epoche zu erhöhen, sie ternär zu klassifizieren (ich möchte die Regengenauigkeit verbessern) und sie zu einem sichtbaren Bild zu machen (ich möchte die Genauigkeit bei schönem Wetter verbessern)?

Ich möchte vorerst AUC 0.8 anstreben.

Ist es genauer, es auf RNN zu erweitern, da es Zeitreihenelemente gibt? (Ich muss lernen)

Recommended Posts

[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Deep Learning aus den mathematischen Grundlagen Teil 2 (während der Teilnahme)
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
Verbessertes Lernen, um von null bis tief zu lernen
Bildausrichtung: von SIFT bis Deep Learning
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Erhalten Sie Daten von Poloniex, einem virtuellen Geldwechsel, über die API und verwenden Sie Deep Learning, um den Preis des nächsten Tages vorherzusagen.
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
Deep Learning-Anfänger versuchten die Wettervorhersage aus meteorologischen Satellitenbildern mit Keras
Tweet die Wettervorhersage mit Bot Teil 2
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
POST-Images von ESP32-CAM (MicroPython) an den Server
Aktienkursprognose mit Deep Learning (TensorFlow) -Teil 2-
Deep Learning von Grund auf neu
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
Ich wollte die Python-Bibliothek von MATLAB verwenden
Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]
Ich habe versucht, Dropout zu erklären
Deep Learning von Grund auf 1-3 Kapitel
Papier: Maschinelles Lernpapier, das Bilder im Gehirn reproduziert (Tiefenbildrekonstruktion aus menschlicher Gehirnaktivität)
Verwendung des Generators
[Deep Learning] Untersuchen Sie, wie jede Funktion des Faltungsnetzes verwendet wird [DW Tag 3]
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.
[Python] Ich habe versucht, LINE BOT die Wettervorhersage beantworten zu lassen
So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen
(Deep Learning) Ich habe Bilder von der Flickr-API gesammelt und versucht, durch Transferlernen mit VGG16 zu unterscheiden
Einführung in Deep Learning ~ Lernregeln ~
Ich habe das Toho-Projekt mit Deep Learning aufgenommen ... ich wollte.
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Wie benutzt man den Dekorateur?
Einführung in Deep Learning ~ Backpropagation ~
[Deep Learning von Grund auf neu] Informationen zu den Ebenen, die für die Implementierung der Backpropagation-Verarbeitung in einem neuronalen Netzwerk erforderlich sind
Kapitel 1 Einführung in Python Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
[Maschinelles Lernen] Verstehen Sie aus der Mathematik, warum der Korrelationskoeffizient zwischen -1 und 1 liegt.
Lua-Version Deep Learning von Grund auf neu Teil 6 [Inferenzverarbeitung für neuronale Netze]
Wie nutzt man maschinelles Lernen für die Arbeit? 01_ Den Zweck des maschinellen Lernens verstehen
[Python + Heroku] Vom Zustand ohne Python zur Anzeige von etwas mit Heroku (Teil 2)
Verwendung der Zip-Funktion
Verwendung des optparse-Moduls
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo
Wie man SWIG von waf benutzt
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Einführung in das tiefe Lernen ~ Funktionsnäherung ~
Versuchen Sie es mit TensorFlow Part 2
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Tiefes Lernen, um ohne GPU zu beginnen
Einführung in Deep Learning ~ Codierungsvorbereitung ~
Poste ein Bild von Python auf Tumblr
Verwenden Sie die Flickr-API von Python
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 8 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 5 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 3 Memo
Deep Learning Memo von Grund auf neu gemacht