--Erstellen Sie Ihren eigenen Aktienkursdatensatz und implementieren Sie das AR (1) -Modell.
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
#Lesen Sie die Daten als df.
df = pd.read_csv(file_nm, encoding='cp932') # file_Geben Sie den Pfad der Standard-CSV-Datei in nm an.
#Da die oben genannte CSV nutzlose Informationen enthält, formatieren Sie sie als df.
date = df.index[1:] #Generieren Sie ein Datum, um den Wert des Datums zu speichern.
df = pd.DataFrame(df.values[1:,:], columns=df.loc['Datum'].values) #Zusätzliche Informationen löschen.
df['Datum'] = date
df = df[['Datum', 'Offener Preis', 'Hoher Preis', 'Niedriger Preis', 'Schlusskurs', 'Volumen', 'Schlusskurs調整値']]
#Grenzen Sie die df-Spalte bis heute und den Schlusskurs ein.
df = df[['Datum','Schlusskurs']]
#Ändern Sie den Datentyp des im Schlusskurs gespeicherten Werts von string in float32.
df.loc[:,'Schlusskurs'] = df['Schlusskurs'].astype(np.float32)
#28. Juni 2013 0,1. Juli 2013 1,2. Juli 2013 2, ...Generieren Sie eine Datumsnummernspalte.
date_num = list(range(len(df.Datum)))
df['Datumsnummer'] = date_num
df = df[['Datum', 'Datum番号', 'Schlusskurs']]
#Generieren Sie vor einem Tag eine Spalte mit Schlusskursen.
df_2 = df.copy()
df_2['Datumsnummer'] = df_2['Datumsnummer'] + 1
df = pd.merge(df, df_2[['Datumsnummer' ,'Schlusskurs']], on='Datumsnummer', how='left')
df = df.rename(columns={'Schlusskurs_x':'Aktienkurs des Tages', 'Schlusskurs_y':'Aktienkurs des Vortages'})
#Schließen Sie Zeilen aus, die fehlende Werte enthalten.
df = df.dropna()
#Funktionswert,X zum Speichern der Zielvariablen,Generiere y.
y = df.Aktienkurs des Tages.values
X = df.Aktienkurs des Vortages.values
def reshape_row(arr):
"""X,Ändern Sie die Form von y.(Wechseln Sie zu einem Zeilenvektor.)
"""
return arr.reshape(-1, 1)
X, y = reshape_row(X), reshape_row(y)
# X,y, um Daten und Validierungsdaten zu trainieren 7:Teilen Sie durch ein Verhältnis von 3.
train_X, val_X, train_y, val_y = train_test_split(X, y, test_size=0.3)
#Lineares Regressionsmodell(AR(1))Berechnen Sie die Koeffizientenschätzung von.
model = LinearRegression()
model.fit(train_X, train_y)
#Zeigen Sie den Abschnitt und die Koeffizientenschätzung des Aktienkurses des Vortages an.
print("Der Abschnitt ist", model.intercept_[0])
print("Die Koeffizientenschätzung des Aktienkurses am Vortag beträgt", model.coef_[0][0])
#Bewerten Sie das Modell.
true_y = val_y
pred_y = model.predict(val_X)
mean_squared_error(true_y, pred_y)
Recommended Posts