--Créez votre propre ensemble de données sur le cours de l'action et implémentez le modèle AR (1).
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
#Lisez les données comme df.
df = pd.read_csv(file_nm, encoding='cp932') # file_Spécifiez le chemin du fichier csv stock en nm.
#Étant donné que le csv ci-dessus contient des informations inutiles, formatez-le comme df.
date = df.index[1:] #Générez une date pour stocker la valeur de la date.
df = pd.DataFrame(df.values[1:,:], columns=df.loc['Date'].values) #Supprimer les informations supplémentaires.
df['Date'] = date
df = df[['Date', 'Prix ouvert', 'Prix élevé', 'Bas prix', 'le dernier prix', 'Le volume', 'le dernier prix調整値']]
#Réduisez la colonne df à la date et au prix de clôture.
df = df[['Date','le dernier prix']]
#Modifiez le type de données de la valeur stockée dans le cours de clôture de chaîne à float32.
df.loc[:,'le dernier prix'] = df['le dernier prix'].astype(np.float32)
#28 juin 2013 0,1 juillet 2013 1,2 juillet 2013 2, ...Générez une colonne de numéro de date.
date_num = list(range(len(df.Date)))
df['Numéro de date'] = date_num
df = df[['Date', 'Date番号', 'le dernier prix']]
#Générez une colonne des cours de clôture il y a un jour.
df_2 = df.copy()
df_2['Numéro de date'] = df_2['Numéro de date'] + 1
df = pd.merge(df, df_2[['Numéro de date' ,'le dernier prix']], on='Numéro de date', how='left')
df = df.rename(columns={'le dernier prix_x':'Cours de l'action du jour', 'le dernier prix_y':'Cours de l'action de la veille'})
#Excluez les lignes contenant des valeurs manquantes.
df = df.dropna()
#Valeur de la fonctionnalité,X pour stocker la variable objectif,Générer y.
y = df.Cours de l'action du jour.values
X = df.Cours de l'action de la veille.values
def reshape_row(arr):
"""X,Changez la forme de y.(Passez à un vecteur de ligne.)
"""
return arr.reshape(-1, 1)
X, y = reshape_row(X), reshape_row(y)
# X,y pour former les données et les données de validation 7:Divisez par un rapport de 3.
train_X, val_X, train_y, val_y = train_test_split(X, y, test_size=0.3)
#Modèle de régression linéaire(AR(1))Calculez l'estimation du coefficient de.
model = LinearRegression()
model.fit(train_X, train_y)
#Affichez la section et l'estimation du coefficient du cours de l'action de la veille.
print("La section est", model.intercept_[0])
print("L'estimation du coefficient du cours de l'action la veille est", model.coef_[0][0])
#Évaluez le modèle.
true_y = val_y
pred_y = model.predict(val_X)
mean_squared_error(true_y, pred_y)
Recommended Posts