百天计划之第29天,关于“AI智能量化,财富自由与个人成长”相关。 qlib框架使用暂时告一段落。 过去20几天,大家如果一起在学习的话,可以说已经掌握qlib的正确使用方式,甚至是定制与扩展,以及如何正确阅读它的代码。 我们要开始一个新的系列——机器学习在量化中的落地与实践。 当然基于的框架主体仍然是qlib,核心技能还是聚焦的。 机器学习,会涉及统计学、传统机器学习、深度学习以及强化学习。因子特征工程,自动调参等。 统计学用于解读样本,处理异常值。 数据质量对于算法模型非常重要,“数据质量决定结果的上限,而算法模型只是帮助我们逼近这个上限”。 统计学里还有时间序列分析相关内容也与量化投资有关。 机器学习我们会围绕sklearn以及集成学习(决策树为基础的集成学习),pytorch深度学习框架以及强化学习。 注意与qlib的学习类似,不能是一个fit, predict这么简单,而是要“借机器学习的能力,实现基于数字的洞察,进而支持决策”。投资本身就是一个基于信息的持续决策过程。 所以,对于机器学习,我们要知其然,更要知其以然。 01 传统的python量化 传统讲python量化的书,往往从pandas的统计功能讲起,什么描述性统计,推断统计,从学习入门的角度没问题,但离解决实际问题还远。我更建议的可行的切入方式是解决类似kaggle比赛里的问题,这些问题都源于生产,而且有很多人提交了真实有效的解决方案。于实战于学习能力,理解知识。 02 kaggle kaggle是著名的算法“以武会友”的平台,不仅有资金,而且你若获得名次,是实力的表现,可以写到简历作为能力的象征的。google已经把kaggle平台给收了,也足见它在业内的影响力。 有数据,有代码,有讨论这就是非常好的闭环生态。 国内的比赛有阿里云的天池,这些命题和数据都源于实际生产环境,对于锻炼能力,构建机器学习技能很有帮助。 传统机器学习方式,要么直接找一份数据fit一个模型,要么从公式推导讲起,花里胡哨,但离实战终归太远,对于初学者,竞赛的方式是切入机器学习的极佳路径,即便在工作中,你都很难有这么多实战的机会。 kaggle这样的平台,不乏有业内大神团队参与和给出的解决方案,所以从中可以让自己的能力得到快速提升。 03 基础机器学习包sklearn scikit-learn最新的版本是1.1.2。 qlib有这个依赖,如果已安装可以直接忽略;若未安装,可以使用如下安装指令: pip install -U scikit-learn 03 hello kaggle 拿到一个题目,先对问题建模,同时完成baseline的搭建。 分类模型评价指标:精度、错误率,准确率,召回率,F1值,ROC/AUC 。 回归模型的评价指标:平均绝对误差,均方误差。 常用的模型有仨:线性模型(Lasso回归,Ridge回归),树模型(随机森林和梯度提升树【XGBoost, LightGBM, CatBoost】)和神经模型。 随机森林就是N棵决策树集体决策(Bagging的思想)。 04 qlib里的基准模型 xgboost: model: 转成代码调用: def load_xgboost(): sklearn包里的模型,以及xgboost或者lightGBM这样的树模型包,作为baseline使用都非常容易。 机器学习难在数据预处理,特征工程,如何分析并调优参数等,这才是核心之关键。 小结: 本篇开个头,切入点是sklearn的使用,核心框架会聚焦在集成树模型上。 qlib对于模型都有baseline的实现,重点是在此基础上我们如何调优。 AI量化投资 = AI + 量化 + 投资。 三个技能集组成,核心是投资技能,量化是手段,AI+是工具。 量化框架选用qlib, AI+选择sklearn,集成树,pytorch还有强化学习。 |
|