• 入门机器学习落地AI量化的最佳路径:类kaggle的算法竞赛


    百天计划之第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:
        class: XGBModel
        module_path: qlib.contrib.model.xgboost
        kwargs:
            eval_metric: rmse
            colsample_bytree: 0.8879
            eta: 0.0421
            max_depth: 8
            n_estimators: 647
            subsample: 0.8789
            nthread: 20

    转成代码调用:

    def load_xgboost():
        from qlib.contrib.model.xgboost import XGBModel
        config = {
            'eval_metric': 'rmse',
            'colsample_bytree': 0.8879,
            'eta': 0.0421,
            'max_depth': 8,
            'n_estimators': 647,
            'subsample': 0.8789,
            'nthread': 20
        }
        model = XGBModel(**config)
        return model

    sklearn包里的模型,以及xgboost或者lightGBM这样的树模型包,作为baseline使用都非常容易。

    机器学习难在数据预处理,特征工程,如何分析并调优参数等,这才是核心之关键。

    小结:

    本篇开个头,切入点是sklearn的使用,核心框架会聚焦在集成树模型上。

    qlib对于模型都有baseline的实现,重点是在此基础上我们如何调优。

    AI量化投资 =  AI + 量化 + 投资。

    三个技能集组成,核心是投资技能,量化是手段,AI+是工具。

    量化框架选用qlib, AI+选择sklearn,集成树,pytorch还有强化学习。

  • 相关阅读:
    TDengine 3.0:核心代码全部开源,企业版价值何在?
    STM32与陀螺仪、加速度计传感器的数据融合与姿态估计
    运维大数据平台的建设与实践探索
    Python装饰器实例讲解(三)
    android.support.v7.app.AlertDialog
    centos7 配置Nginx 启动 停止
    Sentinel实战(待完善)
    使用 @GrpcClient 实现客户端
    滑动窗口算法
    牛顿问题——牛吃草问题,地球人口承载力估计(c++)
  • 原文地址:https://blog.csdn.net/weixin_38175458/article/details/126585707