Aidemy 2020/10/30
Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur KI-Fachschule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der zweite Beitrag der Aktienkursprognose. Freut mich, dich kennenzulernen.
Was diesmal zu lernen ・ ③ Erfassen Sie Zeitreihendaten des durchschnittlichen Aktienkurses von Nikkei ・ ④ Erstellen Sie ein Modell, das die Höhen und Tiefen der Aktienkurse vorhersagt
I. Zeitreihendaten von Aktienkursen erfassen und in DataFrame konvertieren Ii Andere Elemente als den "Schlusskurs" der Daten löschen und nach Datum sortieren Ⅲ Kombinieren Sie Tweet-Daten und Zeitreihendaten
·Code
-In dieser Vorhersage werden nur __ "Datumsdatum" __ und __ "Schlusskurs" __ verwendet, also __ die anderen __ löschen. Außerdem möchte ich die Daten nach __date __ sortieren, also konvertiere ich das "Datendatum" in __index und sortiere es . - "pd.to_datetime ()" __ behandelt "Datendatum" als Zeitreihendaten. Verwenden Sie außerdem __ "set_index ()" __, um dies zu einem Index zu machen. -Die Daten, die dieses Mal nicht verwendet wurden __ ['offener Preis', 'hoher Preis', 'niedriger Preis'] __ werden mit __ "drop ()" __ und __ "sort_index (ascending = True)" __ gelöscht Sortieren Sie die Daten in aufsteigender Reihenfolge (älteste zuerst) mit.
·Code
-Die im vorherigen Abschnitt erstellten und im vorherigen Abschnitt organisierten Zeitreihendaten __ "df" __ und die in Kapitel 1 erstellten und mit dem PN-Wert verknüpften Tweet-Daten __ "df_tweets" __ "join ()". Kombiniere mit __ und lösche NaN mit __ "dropna ()" __. Speichern Sie es als "table.csv" mit __ "to_csv ()" __.
・ Code![Screenshot 2020-10-20 18.40.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/e66eda5b-959c-bb46- 2e0b-fa7d9051bc85.png)
・ Ausgabeergebnis (nur Teil)
Ich teile die Daten und erstelle Daten mit dem Index "Datum" und der Spalte "PN-Wert" und "Schlusskurs". Ii Erstellen Sie Daten mit dem Index "Datum" und der Spalte "PN-Wert" und "Schlusskurs". Ⅲ Berechnen Sie die Differenz zwischen dem Aktienkurs (Endwert) und dem Vortag des PN-Werts für Trainingsdaten Ⅳ Ermitteln Sie die Differenz zwischen dem Aktienkurs (Endwert) und dem PN-Wert für die letzten drei Tage am Tag i und berechnen Sie sie als Merkmalsmenge. Ⅴ Erstellen Sie ein Modell aus Funktionen
・ Dieses Mal werden wir den Aktienkurs mit __ "Technische Analyse" __ prognostizieren. Bei dieser Methode werden die Änderung (Differenz) des durchschnittlichen Aktienkurses in den letzten 3 Tagen und die Änderung (Differenz) des PN-Werts __ als Merkmalsgrößen verwendet, um die Höhen und Tiefen des Aktienkurses am nächsten Tag vorherzusagen.
·Code
・ Nach der Standardisierung besteht der nächste Schritt darin, Trainingsdaten und Testdaten in DataFrame zu konvertieren. Die Spalte ist __ "PN-Wert" und "Schlusskurs" __ und speichert __ "standardisiertes X" bzw. "y" __. Außerdem ist __index ein Datum __.
·Code
-__ Der Zweck besteht darin, die Änderung (Differenz) zwischen dem PN-Wert und dem Schlusskurs für die letzten 3 Tage zu berechnen. Verarbeiten Sie also zuerst die Daten, damit die Änderung pro Tag berechnet werden kann. ・ Öffnen Sie zunächst die im vorherigen Abschnitt erstellte Datei df_train.csv. Da dieser DataFrame unmittelbar danach aufgeteilt wird, erstellen Sie eine leere Liste, damit sie für jedes Element gespeichert werden kann. Insbesondere "exchange_dates" zum Speichern von Daten, "pn_rates" zum Speichern von PN-Werten, "pn_rates_diff" zum Ermitteln der Differenz zum PN-Wert in der vorherigen Zeile und "pn_rates_diff" zum Speichern von Aktienkursen (Schlusskursen) auf dieselbe Weise. Bereiten Sie eine leere Liste mit "exchange_rates" und "exchange_rates_diff" vor, die die Differenz zum Aktienkurs der vorherigen Zeile ermittelt.
・ Sobald Sie diesen Punkt erreicht haben, wird __DataFrame aufgeteilt __. Ich möchte einen Tag nach dem anderen damit umgehen, also nehme ich __ Zeile für Zeile __ heraus. Teilen Sie es für jede Zeile durch __ ",", die erste Spalte ist das Datum, die zweite Spalte ist der PN-Wert und die dritte Spalte ist der Aktienkurs, also jedes __ in der zuvor erstellten leeren Liste Geschäft __.
·Code
・ Wenn Sie die Änderungen pro Tag beschreiben können, schreiben Sie die Änderungen alle __3 Tage auf die gleiche Weise __.
Um die Indexnummer (Datum) anzugeben, speichern Sie zuerst den Wert von __Wie viele Tage, um __ zu trennen, in der Variablen "INPUT_LEN". Bereiten Sie in ähnlicher Weise "tr_input_mat" vor, in dem Änderungen in den letzten drei Tagen gespeichert sind, und "tr_angle_mat", in dem die Ober- und Unterseite des Aktienkurses am Referenztag (Tag i) als leere Listen gespeichert sind. -Nächste, für jeden __i Tag im Bereich der PN-Wertänderung Datenlänge "data_len" __, __INPUT_LEN Tage PN-Wert und Aktienkursänderung __ zusammen mit einer leeren Liste namens tmp_arr Speichern Sie es und speichern Sie es in der nächsthöheren Dimension "tr_input_mat".
Ähnlich wird die Änderung des Aktienkurses (exchange_rates_diff) am Tag i in "tr_angle_mat" gespeichert, in dem die Ober- und Unterseite des Aktienkurses als "1" bei __ plus und "0" bei minus gespeichert werden.
Durch Konvertieren von "tr_input_mat" und "tr_angle_mat", die bisher erstellt wurden, in das __NumPy-Format und unter Verwendung von __, __ "train_feature_arr" __ (Trainingsdaten), __ "train_label_arr" __ (Lehrerbezeichnung) ist es schließlich ein Modell. Die Daten, die übergeben werden können, sind abgeschlossen.
-Die bisherige Erklärung und der folgende Code beziehen sich ausschließlich auf Trainingsdaten, aber natürlich sind auch Testdaten erforderlich, um ein Modell zu erstellen. Daher ist es erforderlich, dasselbe für __testdaten __ zu tun.
·Code
・ Nachdem Sie Trainingsdaten und Lehreretiketten für Trainingsdaten und Testdaten erstellt haben, können Sie daraus endlich ein Modell erstellen.
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts