用途:CatBoost 是 Yandex 推出的梯度提升决策树库,官方称其能自动、几乎无需调参地处理类别特征。适用于含类别特征的表格数据、低延迟推理、排序与分类任务(如电商推荐、欺诈检测、点击率预测),以及对过拟合稳健的中小数据集。
主要能力:原生支持类别特征,直接传入字符串列即可,无需手动独热编码;使用对称(oblivious)决策树提升预测稳定性;支持 CPU 与 GPU 评分,GPU 训练在超过百万行数据时有加速;可直接计算特征重要性与 Tree SHAP 值解释模型;支持导出 ONNX 与原生 .cbm 格式,便于 C++/Go/Rust 跨平台推理。
使用方式:用 CatBoostClassifier 等类构建模型,通过 fit 训练,预测用 predict。类别列名或索引通过 cat_features 参数传入,也可用 Pool 封装训练集与验证集。示例:model = CatBoostClassifier(iterations=100, learning_rate=0.1, verbose=20); model.fit(X, y, cat_features=cat_features); preds = model.predict(X)。训练时可通过 eval_set 传入验证池并结合 early_stopping_rounds、eval_metric 防止过拟合,用 get_best_iteration() 获取最佳迭代次数。导出模型用 model.save_model("catboost_model.onnx", format="onnx") 或 model.save_model("catboost_model.cbm")。
适用场景:类别特征丰富的表格分类与排序、推荐与 CTR 预测、欺诈检测等需要可解释性与稳定预测的任务。
限制与注意事项:不要把高基数类别列手动做标签编码,CatBoost 的目标编码统计上更优;深度不宜过大(超过 10),默认 depth 6 通常较优;不要用早停所用的验证集评估最终性能,应在独立测试集上评估。常见问题包括:类别列含字符串但未列入 cat_features 会报 CatBoostError;GPU 显存不足时需降低 max_depth 或改用 CPU;标签含缺失或无穷值会导致指标为 NaN。以上命令与参数均来自资料原文,未提供的价格、平台等信息暂未给出。