【问题标题】:How to predict stock price for the next day with Python?如何用 Python 预测第二天的股票价格?
【发布时间】:2016-11-12 03:01:07
【问题描述】:

我正在尝试预测我的系列第二天的股价,但我不知道如何“查询”我的模型。这是我的 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(..¿?..) )来预测“下一天”的股价。

我该怎么做?

先谢谢了!!!

【问题讨论】:

    标签: python machine-learning sklearn-pandas


    【解决方案1】:
    model.predict(X_test) 
    

    将完成这项工作。这就是美妙的documentation 提问前先阅读基础知识。

    Edit1:响应 cmets,那么您的特征工程有问题。您无法使用模型预测值(使用您没有价值的特征。)。您必须回过头来重新考虑为什么选择这些功能以及它们如何影响您的结果变量等。

    Edit2:您可能需要做的是两个模型,即 20d-avg 上的时间序列模型,以预测明天的 20d-avg。然后用它来预测股票价格。我个人认为,如果你可以做时间序列模型并获得不错的结果,你就不需要第二个模型。

    【讨论】:

    • 感谢您的回答! 'X_test' 必须与 X 具有相同的列,但我不知道 'Adj Close'、'20d_ma' 和 '50d_ma' 使用(因为我不知道 'tomorrow' 的这个值......)我读了文档,但我不明白这个...谢谢!
    【解决方案2】:

    您可以使用属于 sklearn 的 Predict()。并计算“下一天”的 X 值(您需要通过自己的算法来定义)。

    直接来自sklearn库源码:

    def predict(self, X):
            """Predict using the linear model
            Parameters
            ----------
            X : {array-like, sparse matrix}, shape = (n_samples, n_features)
                Samples.
            Returns
            -------
            C : array, shape = (n_samples,)
                Returns predicted values.
            """
            return self._decision_function(X)
    
        _center_data = staticmethod(center_data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 2019-07-04
      • 2019-05-28
      • 2019-03-17
      • 2022-01-25
      • 2020-06-19
      • 2020-08-09
      相关资源
      最近更新 更多