欢迎光临散文网 会员登陆 & 注册

使用 Python 对股票参数进行特征重要性分析

2023-01-10 06:26 作者:梦醒南天  | 我要投稿

1. 前言

特征重要性分析,顾名思义就是要看看这一批参数里面,各个参数对模型预测结果的贡献度分别是多少,对于每一个预测结果来说,哪些参数的贡献度是最大的,哪些参数是无关紧要的。在本文中,我们以预测股票涨跌为例,简要介绍使用 Python 来对股票预测模型的参数进行特征重要性分析的方法,希望对大家能有所帮助。

2. 导入依赖包

这里我使用的 Python 版本是:3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52)

3. 准备好模型训练所需的数据

要对预测模型的参数进行重要性分析,首先我们得有关于这些参数的数据(如:'MACD', 'MACD_DIF', 'MACD_DEA', 'DMA_DIF', 'PLRC12', 'PLRC6', 'Price1M', 'Price3M', 'EMA5', 'EMAC10'等等)。这些参数我已经事先准备好了,这里我们只需从文件中读取即可。

使用下面的代码将数据从文件中读取出来:

从代码运行的输出结果中可以看到,我们这一批数据总共有 19 个参数以及 6884 个样本:

4. 划分训练集和测试集

使用如下代码将整个数据划分为两个部分:测试集和训练集。训练集用于模型训练,测试集用于模型验证和测试。

从代码的运行输出结果可以看到,这里我们划分的训练集样本数量为 5507 个,测试集的样本数量为 1377 个。

5. 用 

5. 用随机森林回归算法对模型进行训练

模型训练好了之后,我们可以使用如下代码使用模型对测试集中的数据进行预测:

6. 调用模型解释包 shap 对参数进行特征重要性分析

运行上面的代码,我们就可以看到各个参数对模型预测结果的贡献度了,红色代表正向贡献,蓝色代表负向贡献,参数的贡献度从上往下是由大到小,具体情况如下图所示:

7. 对某个预测结果进行

7. 对单个预测结果的特征贡献度进行可视化显示

这里我们选择测试集中的第 1 个样本和第 5 个样本进行演示:

8. 对模型所有的预测结果进行可视化

9. 结语

以上就是使用 Python 对股票涨跌预测模型的参数进行重要性分析的方法了,如果感觉还不错的话,可以帮忙给个赞哦,感谢各位支持。

使用 Python 对股票参数进行特征重要性分析的评论 (共 条)

分享到微博请遵守国家法律