・ Verwendet Bestandsdaten für ein Jahr 2019 für eine bestimmte Unterhaltungsmarke ・ Verwendet den Nikkei Average Inverse Index für denselben Zeitraum ・ Erwähnt nicht die Validierungsmethode, ob es sich um die optimale Kombination von Merkmalsgrößen handelt
・ Führen Sie zum Zwecke der Implementierungsmethode keine Parametereinstellung für Bewertungsindizes wie unzureichendes Lernen, Überlernen und Genauigkeit der vorhergesagten Werte durch.
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
npArray = np.loadtxt("stock.csv", delimiter = ",", dtype = "float",skiprows=1)
#Merkmalsmenge (inverser Index)
z = npArray[:,1:2]
z = npArray[:,2:3]
#Prognosedaten (Aktienkurs)
y = npArray[:, 3:4].ravel()
#Einfache Erstellung eines Regressionsmodells
model = LinearRegression()
#Ausbildung
model.fit(z,y)
print('Neigung:', model.coef_)
print('Sektion:', model.intercept_)
#Prognose
y_pred = model.predict(z)
#Streudiagramm von INDEX und Aktienkurs und Darstellung der linearen Funktion
plt.figure(figsize=(8,4))
plt.scatter(z,y, color='blue', label='Stock price')
plt.plot(z,y_pred, color='green', linestyle='-', label='LinearRegression')
#Volumendiagramm
plt.ylabel('Closing price')
plt.xlabel('Volume')
plt.title('Regression Analysis')
plt.legend(loc='lower right')
Neigung: [-2.27391593] Abschnitt: 4795.89427740762 Es ist ersichtlich, dass der inverse Index und der Aktienkurs eine negative Korrelation aufweisen und nicht miteinander verknüpft sind. Als nächstes betrachten wir die Korrelation zwischen Handelsvolumen und Aktienkurs. Diesmal wurde es zu einer positiven Korrelation, und es ist ersichtlich, dass der Aufwärtstrend das ganze Jahr über nahezu stabil war. 2. Multiple Regression Siehe die MSE (durchschnittlicher quadratischer Fehler) des Aktienkurses und den Rest des vorhergesagten Aktienkurses aus dem inversen Index und Volumen.
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
npArray = np.loadtxt("stock.csv", delimiter = ",", dtype = "float",skiprows=1)
#Merkmalsmenge (inverser Index & Volumen)
x = npArray[:,1:3]
#Prognosedaten (Aktienkurs)
y = npArray[:, 3:4].ravel()
#Erstellung mehrerer Regressionsmodelle
model = LinearRegression()
#Funktionsstandardisierung
sc = StandardScaler()
#Trainingsdaten (INDEX,Schulung eines Konverters zur Standardisierung des Volumens)
x_train_std = sc.fit_transform(x_train)
#Testdaten (INDEX) mit einem Konverter, der mit Trainingsdaten trainiert wurde,Volumen) ist standardisiert
x_test_std = sc.transform(x_test)
#Ein Modell mit Trainingsdaten lernen
model.fit(x_train_std, y_train)
#Prognostizieren Sie Aktienkurse mit Trainingsdaten und Testdaten
y_train_prd = model.predict(x_train_std)
y_test_prd = model.predict(x_test_std)
#Berechnen Sie die MSE des tatsächlichen Aktienkurses und des prognostizierten Aktienkurses
np.mean((y_train - y_train_prd) ** 2)
np.mean((y_test - y_test_prd) ** 2)
# MSE(Berechnung des durchschnittlichen quadratischen Fehlers)
print('MSE ', mean_squared_error(y_train, y_train_prd),mean_squared_error(y_test, y_test_prd))
#Prognostizierte Darstellung des verbleibenden Aktienkurses (prognostizierte korrekte Antwort)
plt.figure(figsize=(7,5))
plt.scatter(y_train_prd, y_train_prd - y_train,
c='orange', marker='s', edgecolor='white',
label='Training')
plt.scatter(y_test_prd, y_test_prd - y_test,
c='blue', marker='s', edgecolor='white',
label='Test')
plt.xlabel('Stock price')
plt.ylabel('Residual error')
plt.legend(loc='upper left')
plt.hlines(y=0, xmin=0, xmax=1200, color='green', ls='dashed',lw=2)
plt.xlim([220,1200])
plt.tight_layout()
plt.show()
Der minimale quadratische Durchschnitt beträgt Trainingsdaten = 17349,4, Testdaten 23046,2 Wie oben erwähnt, haben der inverse Index und der Aktienkurs eine negative Korrelation, so dass der MSE-Wert hoch und der Unterschied zu den Trainingsdaten groß ist. Obwohl der Restbetrag im ersten Halbjahr 2019 bei einem Aktienkurs von rund 300 Yen relativ gering ist, zeigt er eine negative Korrelation mit dem inversen Index. Da er 500 Yen überschreitet, gibt es große Abweichungen und einen großen Fehler bei den Trainingsdaten. Es stellt sich heraus, dass es sich nicht um eine Prognose der Aktienkurse handeln kann
Fortsetzen
Recommended Posts