Cet article est un article de mémoire destiné aux élèves du primaire qui étudient par eux-mêmes le python, l'apprentissage automatique, etc. «Ce sera extrêmement simple,« étudiez en copiant le code qui vous intéresse ». ――Nous vous serions reconnaissants si vous pouviez nous donner des commentaires constructifs (si vous l'aimez, veuillez LGTM et stockez-le).
Le sujet d'aujourd'hui est une vidéo sur Youtube intitulée ** Construire un programme de prévision d'actions **.
Youtube: Build a Stock Prediction Program
L'analyse a utilisé Google Colaboratry, comme le montre la vidéo youtube.
Alors j'aimerais le faire.
Tout d'abord, importez la bibliothèque. Cette fois, nous utiliserons une bibliothèque appelée quandl
. quandl
semble être une bibliothèque pour récupérer le cours des actions et d'autres données (je ne savais pas ...).
pip install quandl
Comme il ne s'agit pas de la bibliothèque initialement incluse dans Google colab, installez-la avec pip
.
Ensuite, importez la bibliothèque à utiliser cette fois.
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
En plus du quandl que j'ai installé plus tôt, j'ai importé numpy et diverses bibliothèques scikit-learn
.
Ensuite, récupérez les données. Cette fois, nous utilisons le cours de l'action Facebook.
df = quandl.get('WIKI/FB')
print(df.head())
Vous avez maintenant obtenu les données. Puisque ʻAdj. Close` (cours de clôture ajusté) est utilisé dans les données acquises, remplacez df.
df = df[['Adj. Close']]
print(df.head())
Décalez les données contenues dans le df de quelques jours pour créer une autre colonne (Prediction
). À ce moment-là, «combien de jours de décalage» est stocké comme une variable.
forecast_out = 30
df['Prediction'] = df[['Adj. Close']].shift(-forecast_out)
print(df.tail())
Si vous regardez la fin de df, vous pouvez voir que la valeur de Prediction
est NaN par le nombre de jours décalés.
Ensuite, créez des données d'entraînement à partir de df ['Predcition']
. Pour les données d'entraînement, nous utiliserons la partie des données créée en décalant les données pendant plusieurs jours (30 jours cette fois), hors NaN. Je l'utilise pour prédire le décalage de 30 jours.
X = np.array(df.drop(['Prediction'], 1))
X = X[:-forecast_out]![stockprediction.png]
print(X)
【image】
Ensuite, créez des données de test. La méthode est la même que les données d'entraînement.
y = np.array(df['Prediction'])
y = y[:-forecast_out]
print(y)
Maintenant, les données ont été traitées. Ensuite, nous passerons à l'analyse à l'aide de scikit-learn.
Divisez les données d'entraînement (X) et les données de test (y) par train_test_split de sklearn.
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Cette fois, nous ferons des prédictions à l'aide de SVM et de régression linéaire.
#SVM rbf(Régression non linéaire)
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)
Vous venez de créer un modèle entraîné à l'aide des données d'entraînement.
Utilisons-le pour faire des prédictions
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)
Ceci termine la prédiction avec le modèle créé.
――Comme vous le comprenez, la prédiction ci-dessus n'a pas de sens. Je comprends qu'étudier comment utiliser sklearn est le sens de cette copie. «Il existe de nombreux articles sur la prévision des cours des actions et des matières premières, et l'analyse des séries chronologiques est très approfondie, je voudrais donc continuer à apprendre.
c'est tout.
(Apprendre jusqu'à présent)