我正在尝试预测我系列第二天的股价,但我不知道如何“查询”我的模型。这是我在Python中的代码:
# Define my period
d1 = datetime.datetime(2016,1,1)
d2 = datetime.datetime(2016,7,1)
# Get the data
df = web.DataReader("GOOG", 'yahoo', d1, d2)
# Calculate some indicators
df['20d_ma'] = pandas.rolling_mean(df['Adj Close'], window=20)
df['50d_ma'] = pandas.rolling_mean(df['Adj Close'], window=50)
# Create the model
from sklearn.linear_model import LinearRegression
from sklearn.cross_validation import train_test_split
X = df[list(df.columns)[6:]] # Adj Close and indicators...
y = df['Adj Close']
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = LinearRegression()
model.fit(X_train,y_train)
好的,我需要查询模型(model.predict(.. ??))来预测“下一天”的股票价格。
我该怎么做?
提前感谢!!!
答案 0 :(得分:4)
model.predict(X_test)
将完成这项工作。这就是出色的documentation 在提问之前先做基本的阅读。
Edit1:为了回应评论,那么您的功能工程就会出现问题。您无法使用模型预测值(使用您没有值的功能。)。您将不得不回过头来重新思考为什么选择这些功能以及它们如何影响结果变量等。
Edit2:可能你需要做的是两个模型,一个20d-avg的时间序列模型来预测明天的20d-avg。然后用它来预测股票价格。我个人认为,如果你能做时间序列模型并获得不错的结果,你就不需要第二个模型。
答案 1 :(得分:1)
您可以使用属于sklearn的Predict()。并计算“下一天”的X值(您需要通过自己的算法来定义)。
直接来自sklearn库源代码:
CheckProcedure