一 机器学习模型
1.1 这周看了老师的视频后,尝试进行非线性因子挖掘,
非线性因子挖掘侧重特征工程与参数调优,
之前是线性因子挖掘因子,这次试用PandaAi平台的XGboost模版进行非线性因子选股
##1.2模型本质与核心优势
XGBoost 是 Gradient Boosting 方法的高效实现,基于 CART 树作为弱学习器,通过串行集成多个弱学习器构建强学习器,核心优势体现在:
优化能力强:对损失函数进行二阶泰勒展开,同时利用一阶和二阶导数信息,支持自定义可导损失函数;
防过拟合:在损失函数中加入正则项(控制树的复杂度),支持特征抽样和子采样,有效降低模型方差;
效率突出:支持特征层面并行计算(特征排序与信息增益计算可多线程执行),训练速度比 GBDT 快 2 倍以上,比随机森林快 5 倍以上;
灵活性高:除 CART 树外,还支持线性分类器,适配分类与回归场景
另外平台上的模版,还叠加了 超参数搜索组件。
超参数搜索是机器学习模型(包括 XGBoost 选股模型)优化过程中的关键步骤,核心是通过系统性方法找到让模型性能最优的 “超参数组合”—— 这里的 “超参数” 是模型训练前需要人为设定的参数(而非训练过程中自动学习的参数)
超参数搜索的核心目的是避免人工试错的主观性和局限性,通过标准化方法找到 “偏差 - 方差平衡” 的最优参数组合,让模型在选股场景中既捕捉有效因子规律,又能应对市场风格变化
测了几次,平台上用基础服务器,可以跑通,用高级服务器,反而出现代码错误。不知道与哪个代码有关??
期间我选择了最近1年从25年1月到26年3月, 机器学习模型本身应该用滚动回测,但模版里没看到有,所以调短周期,确保模型及时学习市场特征变化。 实际有时间的话,可以做10年以上的多阶段滚动回测,来识别市场特征变化。
核心参数(仅需优化关键参数,其余默认即可):
subsample(子样本率):取值 0.6-1.0,最优值 0.95;
max_depth(决策树最大深度):取值 3-8,最优值 3;
辅助参数:n_estimators(弱学习器个数, 未见到?)、learning_rate(学习率-权重缩减系数,从0.1-》 0.15)、colsample_bytree/colsample_bylevel(?列采样比例?-)
1.3 初步优化版本
非线性模型表现优于线性模型,对于市场的适应度较贴合,当然也可能 从25年1月至26年2月 A股是 趋势行情。
二.风险与注意事项
-模型依赖历史数据特征,市场风格巨变时可能因有效特征失效导致较大回撤;
-参数敏感性低,仅需优化 subsample 和 max_depth,过度调参易引发过拟合;
-策略有效性基于历史回测,实际应用需结合实时市场特征动态调整因子与参数