python - 更新:我预测哪些数据可以通过改变收盘价来获得未来的预测?
问题描述
我编写了一个 Python 代码,它使用统计、机器学习和深度学习模型进行预测。但是,如果您在预测股票的未来价格时指出我的以下想法中的问题,我将不胜感激。
- 下载历史数据。
- 添加技术指标作为特征。
- 通过将“调整后的收盘价”价格向后移动要预测的天数来创建目标列,例如“days_to_predict”,从而在空单元格中获得 NaN。
- 删除“音量”、“调整关闭”、“关闭”、“低”、“打开”和“高”列。
- 将特征数组中对应于 NaN 的最后“days_to_predict”行复制到另一个名为“X_forecast”的变量中。
- 从特征中删除这些行以及目标列中的 NaN。
- 将特征和目标数组拆分为训练和测试集。
- 进行特征/训练集缩放。
- 使用训练集训练模型。
- 使用测试集测试模型的性能。
- 使用模型预测 X_forcast。
虽然,我为此付出了很多努力,但我没有得到准确的结果。我的问题是:我抓错了 X_forecast 吗?请告诉我我的算法出了什么问题,或者,更好的是,还有其他方法可以获取我不知道的 X_forecast 吗?
以下是前一天的示例代码:
import pandas_datareader as web
import numpy as np
from datetime import datetime, date, timedelta
start_date = '01/01/2004'
end_date = date.today()
ticker = 'TSLA'
data_source = 'yahoo'
days_into_the_future = 1
test_size = 0.25
df = web.DataReader(ticker, data_source, start_date, end_date)
data = {}
data['df'] = df.copy()
data['df']['target'] = data['df']['Adj Close'].shift(-days_into_the_future)
data['df'] = data['df'].drop(['Volume','Adj Close','Close'],1)
data['X_forecast'] = data['df'].iloc[-days_into_the_future:,:-1]
data['df'] = data['df'].dropna()
data['feature'] = data['df'].drop(['target'],1)
data['target'] = data['df'].iloc[:,-1]
X = np.array(data['feature'])
y = np.array(data['target'])
timefeatures = data['feature'].index
# split the dataset into training & testing sets by date
train_samples = int((1 - test_size) * len(X))
data["X_train"] = X[:train_samples]
data["y_train"] = y[:train_samples]
data["X_test"] = X[train_samples:]
data["y_test"] = y[train_samples:]
data["dates_train"] = timefeatures[:train_samples] # Extract the dates of train and test set dates
data["dates_test"] = timefeatures[train_samples:]
from sklearn.linear_model import LinearRegression
model = LinearRegression()
history = model.fit(data['X_train'],data['y_train'])
predictionlineReg = history.predict(data['X_test']) # Linear regression
predictionlineRegfuture = history.predict(data['X_forecast'])[0] # For tomorrow's prediction
解决方案
推荐阅读
- amazon-web-services - 通过 Userdata.txt 在 AWS Deep Learning AMI 上安装环境
- swift - 设置用户默认错误 - 尝试插入非属性列表对象
- excel - 将枢轴值移动到行
- unity3d - Unity3d与网格碰撞
- javascript - 如何将 ajax 调用中的函数从 JQuery 传递到 Node.JS 服务器
- excel - 更有效的索引匹配方式?
- node.js - Angular/NodeJS/Express 应用程序无法在移动设备上运行
- c# - ASP.Net:加密 web.config "ConnectionString' 后,tlide(~) 路径显示 404 错误
- sql-server - 使用 node-mssql 时,编码“_sbcs”的“字符”不正确(必须是 len 128 或 256)
- javascript - 传递函数风格的区别