股票价格预测,使用scikit学习选择未来的时间量

时间:2018-01-01 21:39:07

标签: python scikit-learn

我正在尝试使用机器学习来预测股票价格。我在选择要预测多长时间时遇到问题,我希望能够预测未来100-200天。似乎我的代码在过去的200天内切断并在那里添加预测,而不是额外增加200天的预测。例如,如果我有1000天的数据,我想要1000和200 0f的预测,现在它正在切断最后的200并在那里进行预测。为了使我的问题更容易理解,比如我有一个整数1,2,3,4,5,6,7,8,9,10的数据集,我如何告诉预测方法我想要下一个2,10系列中有20个整数?我刚刚开始关注一个教程,并且做得不好,只是说把它放在这里,那里,没有太多洞察一切都在做什么。不确定LinearRegression是否是最好的方法,对您提供的任何见解都很满意,谢谢!

import pandas as pd
import math`enter code here`
import numpy as np
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from matplotlib import style

df = pd.read_csv('spyqqqq.csv')

df = df[['Open','High','Low','Adj Close','Volume']]

df['label'] = df['Adj Close'].shift(-200)

df.dropna(inplace=True)

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

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

X = preprocessing.scale(X)

X_lately = X[:-200]

X_train, X_text, y_train, y_text =  cross_validation.train_test_split(X,y, test_size=0.1)

clf = LinearRegression()

clf.fit(X_train, y_train)

accuracy = clf.score(X_text,y_text)

forcast = clf.predict(X_lately)

print("accuracy ",accuracy)
print("forcast ",forcast)

plt.plot(forcast,linestyle='solid',ms=0,color='blue')

plt.show()

0 个答案:

没有答案