人工智能系列之二十:必然中的偶然,机器学习中的随机数-20190429-华泰证券-24页_2mb
报告摘要
金工研究:机器学习中的随机性与模型稳定性分析
核心内容
本文主要探讨了机器学习选股模型中随机数种子对模型结果的影响,以及不同模型对随机性的敏感程度。研究围绕逻辑回归、XGBoost、随机森林和全连接神经网络四种模型,分析了它们在100组不同随机数种子下的表现,旨在揭示机器学习模型中“必然中的偶然”现象。
主要观点
-
随机数的作用:
- 随机数在机器学习中用于增强模型的泛化能力,包括:
- 数据集的随机划分(如训练集、验证集、测试集)
- 权重初始化、随机梯度下降
- 决策树模型中的行列采样(如随机森林、XGBoost)
- 神经网络中的Dropout技术
- 随机数的引入,有助于避免局部最优,提升模型对不同数据的适应能力。
- 随机数在机器学习中用于增强模型的泛化能力,包括:
-
不同模型对随机数的敏感性:
- 逻辑回归:对随机数不敏感,结果几乎保持不变,因其损失函数为凸函数,参数收敛稳定。
- 全连接神经网络:对随机数敏感,结果可能有较大波动,尤其是初始化权重和Dropout等环节。
- XGBoost 和 随机森林:对随机数敏感程度介于逻辑回归和全连接神经网络之间,但集成机制降低了部分不确定性。
-
随机数种子的设置:
- 为保证结果的可重复性,需设置随机数种子。
- Sklearn 和 XGBoost:通过设置
random_state参数即可实现结果可重复。 - Keras:需要同时设置
numpy和tensorflow的种子,且需在单线程环境下使用,以确保结果可重复。
-
模型随机性的来源:
- 本文提出四种可能的随机性来源:
- 样本内数据集的随机扰动
- 样本外数据集的随机扰动
- 回测时间段的选择
- 算法本身包含的随机数
- 其中,回测时间的选择对模型表现影响最大,而随机数种子的影响相对较小。
- 本文提出四种可能的随机性来源:
关键信息
数据集与模型设定
- 股票池:全A股,剔除ST股票、停牌股票及上市3个月内的股票。
- 回测区间:2011年1月31日至2019年1月31日。
- 因子池:包含70个因子,涵盖估值、成长、财务质量、杠杆、市值、动量反转、情绪、股东、技术等类别。
- 模型设定:
- 逻辑回归:固定正则化项系数(C)。
- XGBoost:设置学习速率、最大树深度、行采样比例等超参数。
- 随机森林:固定树棵数、最大特征数等。
- 全连接神经网络:固定隐藏层节点数、Dropout比例、学习速率等。
模型评估方法
- 单因子测试:使用回归法、IC值分析法和分层测试法。
- 分层测试法:按因子值将股票分为若干层,每层等权配置,计算多空组合的年化收益率、夏普比率等指标。
- 评估指标:
- 正确率、AUC
- t值、|t|值
- 因子收益率、Rank IC
- 多空组合净值、年化收益率、夏普比率、最大回撤等
实验结果
- 模型性能:
- 逻辑回归的正确率和AUC分布较窄,表现稳定。
- 全连接神经网络的分布较宽,结果波动大。
- XGBoost和随机森林表现介于两者之间。
- 模型波动性:
- 逻辑回归波动最低,XGBoost和随机森林波动适中。
- 全连接神经网络波动最大,最差和最好情形下的年化收益率差异超过2%。
- 随机性来源比较:
- 回测时间的变异系数最高,说明其对模型表现影响最大。
- 随机数种子的变异系数最低,说明其对模型影响较小。
总结
本文系统分析了机器学习选股模型中随机数种子对模型结果的影响,并指出不同模型对随机性的敏感程度不同。逻辑回归因其损失函数为凸函数,对随机数不敏感;全连接神经网络因参数多且引入多处随机性,对随机数敏感;XGBoost和随机森林由于集成机制,结果波动相对较小。
研究建议:
- 对于简单模型(如逻辑回归)或已验证随机性影响较小的模型,使用固定随机数种子即可。
- 对于复杂模型(如全连接神经网络),应考虑多个随机数种子下的结果,以评估模型的稳定性。
- 投资者应意识到模型结果可能受随机数种子影响,避免对单一结果过度依赖。
风险提示
- 机器学习选股方法基于历史数据,若未来市场环境变化,模型可能失效。
- 存在过拟合风险,需谨慎评估模型泛化能力。
- 随机数种子选择可能影响模型表现,不同种子可能导致不同结果。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载