[PYTHON] [1 Kopie pro Tag] Erstellen Sie ein Aktienprognoseprogramm [Daily_Coding_002]

zunaechst

――Dieser Artikel ist ein Memorandum-Artikel für Grundschüler, die selbst Python, maschinelles Lernen usw. lernen. ――Es wird sehr einfach sein: "Studieren Sie, während Sie den Code kopieren, an dem Sie interessiert sind". ――Wir würden uns über Ihre konstruktiven Kommentare freuen (LGTM & Lager, wenn Sie es mögen).

Thema: Erstellen Sie ein Aktienprognoseprogramm

Das heutige Thema ist ein Video auf Youtube mit dem Titel ** Build a Stock Prediction Program **.

Youtube: Build a Stock Prediction Program

Die Analyse verwendete Google Colaboratry, wie im YouTube-Video gezeigt.

Dann würde ich es gerne machen.

Schritt 1: Bibliothek importieren

Importieren Sie zunächst die Bibliothek. Dieses Mal werden wir eine Bibliothek namens "quandl" verwenden. quandl scheint eine Bibliothek zum Abrufen des Aktienkurses und anderer Daten zu sein (ich wusste nicht ...).

pip install quandl

Da es sich nicht um die Bibliothek handelt, die ursprünglich in Google Colab enthalten war, installieren Sie sie mit pip.

Importieren Sie als Nächstes die diesmal zu verwendende Bibliothek.

Schritt 1: Bibliothek importieren

import quandl
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.svm import SVR
from sklearn.model_selection import train_test_split

Zusätzlich zu dem zuvor installierten Quandl habe ich numpy und verschiedene "scikit-learn" -Bibliotheken importiert.

Schritt 2: Datenerfassungsverarbeitung (Vorverarbeitung)

Dann holen Sie sich die Daten. Diesmal verwenden wir den Facebook-Aktienkurs.

df = quandl.get('WIKI/FB')

print(df.head())

Sie haben jetzt die Daten erhalten. Da in den erfassten Daten Adj. Close (angepasster Schlusskurs) verwendet wird, ersetzen Sie df.

df = df[['Adj. Close']]
print(df.head())

Verschieben Sie die im df enthaltenen Daten um einige Tage, um eine weitere Spalte zu erstellen (Vorhersage). Zu diesem Zeitpunkt wird "wie viele Tage verschoben werden müssen" als Variable gespeichert.

forecast_out = 30

df['Prediction'] = df[['Adj. Close']].shift(-forecast_out)

print(df.tail())

Wenn Sie sich das Ende von df ansehen, können Sie sehen, dass der Wert von "Vorhersage" NaN durch die Anzahl der verschobenen Tage ist.

Als nächstes erstellen Sie Trainingsdaten aus df ['Predcition']. Für die Trainingsdaten verwenden wir den Teil der Daten, der durch Verschieben der Daten für mehrere Tage (diesmal 30 Tage) ohne NaN erstellt wurde. Ich benutze es, um die Verschiebung von 30 Tagen vorherzusagen.

X = np.array(df.drop(['Prediction'], 1))

X = X[:-forecast_out]![stockprediction.png]
print(X)

【Bild】 stockprediction.png

Erstellen Sie als Nächstes Testdaten. Die Methode entspricht den Trainingsdaten.

y = np.array(df['Prediction'])

y = y[:-forecast_out]
print(y)

Jetzt wurden die Daten verarbeitet. Als nächstes werden wir mit der Analyse mit Scikit-Learn fortfahren.

Schritt 3: Vorhersage mit Sklearn

Teilen Sie die Trainingsdaten (X) und Testdaten (y) durch train_test_split von sklearn.

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

Dieses Mal werden wir Vorhersagen mit SVM und linearer Regression treffen.

#SVM rbf(Nichtlineare Regression)
svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)
svr_rbf.fit(x_train, y_train)

svm_confidence = svr_rbf.score(x_test, y_test)
print('svm confidence:', svm_confidence)
lr = LinearRegression()
lr.fit(x_train, y_train)

lr_confidence = lr.score(x_test, y_test)
print('lr confidence:', lr_confidence)

Sie haben jetzt ein trainiertes Modell mit den Trainingsdaten erstellt.

Verwenden wir es, um Vorhersagen zu treffen

x_forecast = np.array(df.drop(['Prediction'], 1))
print(x_forecast)

lr_prediction = lr.predict(x_forecast)
print(lr_prediction)

svm_prediction = svr_rbf.predict(x_forecast)
print(svm_prediction)

Dies vervollständigt die Vorhersage mit dem erstellten Modell.

Schließlich

―― Wie Sie verstehen, ist die obige Vorhersage bedeutungslos. Ich verstehe, dass das Studium der Verwendung von sklearn die Bedeutung dieses Kopierens ist. ――Es gibt viele Artikel zur Prognose von Aktienkursen und Rohstoffen, und die Zeitreihenanalyse ist sehr tiefgreifend, daher möchte ich weiter lernen.

das ist alles.

(Bisher gelernt)

  1. [1 Kopie pro Tag] Vorhersage der Mitarbeiterabnutzung [Daily_Coding_001]

Recommended Posts

[1 Kopie pro Tag] Erstellen Sie ein Aktienprognoseprogramm [Daily_Coding_002]
[1 Kopie pro Tag] Vorhersage der Mitarbeiterabnutzung [Daily_Coding_001]
[1 Kopie pro Tag] Classify_images_Using_Python & Machine Learning [Daily_Coding_003]