基于CatBoost模型与分类任务的ETF选基策略
由bq0m8rec创建,最终由bq0m8rec 被浏览 16 用户
0. 策略名词解释
(1)CatBoost模型
CatBoost 是由 Yandex(俄罗斯的一家互联网公司) 开发的一个 基于梯度提升(Gradient Boosting) 的机器学习库,主要用于 分类、回归、排序任务,以处理结构化数据为主。它的名字来自 “Category Boosting”,因为它特别擅长处理 类别特征(Categorical Features)。本策略中使用的是分类任务(二分类)。
在bigquant平台的可视化模块中暂时不支持
\
(2)分类任务
分类任务是指将输入数据划分到预定义的类别中。在 CatBoost 中,分类任务分为 二分类 和 多分类:
- 二分类:目标变量只有两个类别,例如是否欺诈、是否点击广告等。
- 多分类:目标变量有三个及以上的类别,例如图片识别中的“猫 / 狗 / 鸟”。
二分类问题(Binary Classification Problem)是指
在给定输入空间 x 中的样本 x∈X,通过学习一个映射函数 f:X→{0,1},将样本划分到两个互斥且完备的类别之一。这里的类别通常表示为标签集合 Y={0,1},其中0和1分别代表两个不同的类别(如正类和负类)。
形式上,给定训练样本集 {(xi,yi)}i=1, n,其中每个样本 xi 有对应的标签 yi∈{0,1},目标是学习一个分类函数 f,使得对任意新的样本 x,能准确预测其类别标签 y,即
\
1. CatBoost模型实现
1.1 数据准备(Data Preparation)
这张 Feature Value Distribution (Box Plot) 图是用于快速评估各个特征的数值分布形态、离群情况及标准化需求,为后续特征工程提供依据。
这里只是其中四个特征的box plot图
从下图可以看出,大部分特征值在中位数附近对称分布,但 F2存在明显偏态,且F3出现了较多离群值,需进一步处理以提升模型稳定性。
这张图是标签分布图,样本中上涨(label=1)占比为 40.3%,未上涨(label=0)占比为 59.7%。如下图所示,标签分布基本均衡,有利于二分类建模。
\
1.2 预测函数(Prediction Function)
- CatBoost 是基于梯度提升树的模型,最终的预测函数是多个弱学习器(决策树)的加权和:
预测概率:\nCatBoost 输出的是对数几率(logit),需通过 sigmoid 激活函数变成概率:
下图展示了 CatBoost 模型对训练样本的预测概率分布。从图中可以看出,模型预测概率集中在 0.4~0.6 区间,说明预测结果偏向保守;红线表示均值,橙线代表 ±1 个标准差范围,便于观察预测信心水平。
\
1.3 损失函数(Loss function)
CatBoost 默认的二分类损失是 Logloss(对数损失函数):
公式:
简化形式(以 sigmoid 激活表示):
该图展示了模型在训练过程中的 Logloss 损失函数的变化趋势,包括:
- 蓝线:训练集的 Logloss 随训练轮数下降,表示模型在拟合训练数据;
- 红线(如有):验证集的 Logloss,如果下降后又上升,可能表示过拟合;
- Y 轴采用 对数坐标,能更清晰地观察收敛速度;
- 可用于判断是否需要 Early Stopping。
\
1.4 正则化 (Regularization)
目标: 限制模型复杂度,防止过拟合
正则项公式:
其中 wj 是叶子节点值。
- AUC 衡量的是模型将 正类样本排在负类样本前面的概率。
- 范围在 0~1 之间:
-
AUC = 1:完美分类器,模型可以完美区分正负样本。
-
AUC = 0.5:模型没有区分能力,相当于随机猜测。
-
AUC < 0.5:模型判断方向可能反了(反着来还能更好)。
\
-
1.5 目标函数(Objective function)
CatBoost 的优化目标为 损失函数 + 正则化项,obj= Loss Function+Panelty:
损失函数衡量预测值与真实标签的误差;
- 正则项惩罚模型复杂度;
- 优化通过梯度提升方法(Gradient Boosting)逐步最小化目标函数。
\
1.6 优化过程(Boosting Optimization)
CatBoost 基于 梯度提升决策树(GBDT) 的思想,使用以下改进方式:
这张图展示了Boosting模型在训练过程中的性能变化,横轴表示训练轮数(Boosting Rounds),纵轴表示模型的AUC评分。绿色曲线代表训练集的AUC,橙色曲线代表验证集的AUC。
- 随着训练轮数增加,训练集AUC持续上升,说明模型在学习并拟合训练数据;
- 验证集AUC也在上升,表明模型泛化能力逐步提升;
- 验证集AUC曲线趋于平稳,说明模型训练接近收敛,避免了过拟合;
- 该曲线帮助我们直观判断最佳训练轮数和模型性能,便于调整训练策略。
总结来说,这张图是模型训练和优化的关键监控指标,能够反映Boosting算法的收敛过程和效果
\
1.7 训练过程(Training Process)
这张图显示了模型在训练过程中随着训练轮数(Training Rounds)增加,训练集和验证集的AUC(Area Under Curve,曲线下面积)指标的变化情况。
\
1.8 模型检验(Evaluation)
CatBoost 多分类模型常用的评估指标为:
- 准确率(Accuracy)
我们只看左上角的那张图:
混淆矩阵(confusion matrix)是用来评价分类模型性能的一个工具,它以矩阵的形式展示了模型预测结果与真实标签的对应关系,具体分成四个部分:
预测为负类(Negative) | 预测为正类(Positive) | |
---|---|---|
真实负类 | 真负例 (True Negative, TN) | 假正例 (False Positive, FP) |
真实正类 | 假负例 (False Negative, FN) | 真正例 (True Positive, TP) |
- 真负例 (TN):模型正确预测为负类的数量(比如预测“不涨”,实际也“不涨”)。
- 假正例 (FP):模型错误预测为正类的数量(预测“涨”,实际“不涨”,即误报)。
- 假负例 (FN):模型错误预测为负类的数量(预测“不涨”,实际“涨”,即漏报)。
- 真正例 (TP):模型正确预测为正类的数量(预测“涨”,实际“涨”)。
我们通过分析confusion matrix 发现:
这个模型存在误报的概率较高 所以 还需要继续改进模型
\
2 历史数据回测
\
3 总结
3.1 策略优势
CatBoost + Softmax
3.2 可优化方向
- 特征选择与降维:尝试自动特征筛选,减少冗余,提高模型泛化能力。
- 标签构建改进:探索多类别标签或回归标签,提升预测精度。
- 模型调参与融合:尝试更多模型或调参(如学习率、深度),甚至模型融合。
- 更多市场环境因子:引入宏观数据、行业因子或情绪指标,增强适应性。
- 动态持仓数量调整:根据市场波动或信号强度调整持股数,提高灵活性。
- 数据质量及异常处理:加强缺失值和异常值处理,保证数据稳定性。
\