| 所在主题: | |
| 文件名: 必然中的偶然:机器学习中的随机数——华泰人工.pdf | |
| 资料下载链接地址: https://bbs.pinggu.org/a-2807108.html | |
| 附件大小: | |
|
摘要:
不同机器学习模型对随机数种子的敏感程度不同 本文考察逻辑回归、XGBoost、随机森林和全连接神经网络四种机器学习算法在100组不同随机数种子下的模型性能和单因子回测表现。结果表明,当随机数种子变化时,逻辑回归的结果几乎保持不变,对随机数不敏感;全连接神经网络的结果可能发生较大变化,对随机数较敏感;XGBoost和随机森林对随机数的敏感程度介于上述两者之间。机器学习模型看似“必然”的结果背后包含一定“偶然”因素,投资者应认识到机器学习选股模型可能存在的随机数种子选择偏差。 机器学习多个环节涉及随机数,目的在于增强模型的泛化能力 机器学习多个环节涉及随机数,例如训练集、验证集和测试集的随机划分,对神经网络权值进行随机初始化,利用随机梯度下降法求损失函数最优解,随机森林、XGBoost等决策树集成模型的行列采样,神经网络训练过程中使用Dropout技术等。引入这些随机数具有重要意义,它们或是为了保证损失函数更易达到最优解,或是为了避免极端值对模型训练造成不良影响,或是为了产生具有差异性的样本以便进一步集成,最终目的都在于增强模型的泛化能力。
使用Python常用机器学习包时可进行若干设置保证训练结果可重复 由于机器学习模型中随机数的存在,为了保证结果的可重复性,需要对模型进行若干设置。我们测试了多种常用Python机器学习包随机数种子设置方法,结果表明sklearn和xgboost包设置random_state超参数后就能保证结果可完全复现;当以tensorflow作为后端使用keras包时,如果不使用GPU,在单线程环境下同时固定numpy和tensorflow两处随机数种子就能确保全连接神经网络模型得到可重复的结果。 机器学习模型受随机数影响程度与模型复杂度及随机数作用方式有关 逻辑回归本身比较简单,在使用随机梯度下降算法拟合参数时引入了随机数,由于损失函数为凸函数,参数最终大概率收敛到理论最优参数附近,而较少受随机数影响。神经网络参数量大,在初始化网络权重,利用优化算法最小化损失函数,前向传播进行Dropout等环节均引入了随机数,模型整体具有较高的复杂度,受随机数影响较大。XGBoost和随机森林模型复杂度也较高,行列采样环节涉及随机数,但是由于模型已经进行集成,最终结果的不确定性有所降低。 风险提示:机器学习选股方法是对历史投资规律的挖掘,若未来市场投资环境发生变化导致基学习器失效,则该方法存在失效的可能。机器学习存在一定过拟合风险。当机器学习算法涉及随机数时,不同随机数种子可能得到不同结果。 |
|
熟悉论坛请点击新手指南
|
|
| 下载说明 | |
|
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。 2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。 3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。 (如有侵权,欢迎举报) |
|
京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明