使用 LSTM(长短期记忆)模型预测几个月内特斯拉的股价。有关特斯拉的推文用于提高预测准确性。
首先,使用LSTM 多元时间序列预测模型预测几个月内的股价。然后,清理有关 Tesla 的推文,并使用TextBlob 计算其每日平均情绪得分。最后,将每日平均情绪分数作为特征添加到 LSTM 模型中并用于预测。
免责声明: LSTM 模型不能用于预测现实生活中的股票价格,因为股票市场具有很强的不可预测性。在这个项目中,验证阶段用于测试模型的性能。该项目的目的是使用 LSTM 实现多元时间序列预测。
任务是调查有关特斯拉的推文对其股价的影响。
可以从数据文件夹访问 csvs zip 文件和模型状态。
Adj 收盘价用作响应,以下内容用作特征:
由于 LSTM 模型对数据规模敏感,因此对特征进行归一化,然后将其转换为张量。
LSTM模型参数:
input_size=5
batch_first=True
num_classes=1
optimizer=Adam
loss_function=MSELoss()
使用网格搜索算法通过Ray Tune调整后的 LSTM 模型超参数:
hidden_size=3
num_layers=1
learning_rate=0.001
num_epochs=8000
GPU得到充分利用。
MSE(均方误差)结果:
推文通过以下方式进行清理和预处理:
然后对它们进行词形还原,并对单词进行频率分析。
推文的情绪分数是使用TextBlob 计算的。极性范围为[-1.0,1.0],其中-1.0为最负极性,1.0为最正极性,0.0为中性极性。然后,对情绪分数进行频率分析。最后,计算每日平均情绪得分。
最后,每日平均情绪分数作为一个特征添加到我们的 LSTM 模型中。
LSTM模型参数:
input_size=6
num_classes=1
optimizer=Adam
loss_function=MSELoss()
使用网格搜索算法通过Ray Tune调整后的 LSTM 模型超参数:
hidden_size=5
num_layers=1
learning_rate=0.002
num_epochs=8000
GPU得到充分利用。
MSE(均方误差)结果:
从不带情绪分数和带情绪分数的预测的 MSE 结果来看,很明显,将推文的日平均情绪分数作为特征添加到 LSTM 模型中可以提高其预测准确性。这意味着有关特斯拉的推文对其股价有一定程度的影响。