精华帖子

基于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 可优化方向

  1. 特征选择与降维:尝试自动特征筛选,减少冗余,提高模型泛化能力。
  2. 标签构建改进:探索多类别标签或回归标签,提升预测精度。
  3. 模型调参与融合:尝试更多模型或调参(如学习率、深度),甚至模型融合。
  4. 更多市场环境因子:引入宏观数据、行业因子或情绪指标,增强适应性。
  5. 动态持仓数量调整:根据市场波动或信号强度调整持股数,提高灵活性。
  6. 数据质量及异常处理:加强缺失值和异常值处理,保证数据稳定性。




\

标签

机器学习
{link}