CatBoost是否支持叶节点线性拟合 等效LightGBM linear_tree功能
回答
CatBoost 原生提供和 LightGBM linear_tree 完全等效的能力,不需要额外开发就能实现「叶节点拟合线性函数替代默认常量输出」的需求。
这个功能属于CatBoost的线性树特性,开启和使用方式非常直接:
- 核心配置是将训练参数
leaf_estimation_method设置为Linear - 该特性兼容所有CatBoost支持的任务类型:回归、二分类、多分类、排序任务均可使用
- 开启后模型会在每个叶节点上,基于落入当前节点的样本特征拟合线性函数输出预测值,逻辑和LightGBM线性树一致,在存在分段线性规律的数据集上,相比普通决策树可以用更浅的树深达到更高的精度
- 可以配套通过
l2_leaf_reg参数给叶节点线性模型的权重加L2正则,通过leaf_estimation_iterations调整线性模型的拟合迭代步数,避免过拟合
注意这个特性在0.25及以上版本的CatBoost中才提供,使用前如果版本过低先升级即可。
简单的调用示例如下:
from catboost import CatBoostRegressor # 初始化开启线性树能力的回归模型 model = CatBoostRegressor( leaf_estimation_method="Linear", depth=3, # 线性树通常不需要太深的树结构即可达到不错效果 l2_leaf_reg=3, iterations=1000, verbose=100 ) # 传入训练集、类别特征列正常训练即可 model.fit(X_train, y_train, cat_features=cat_cols)
内容的提问来源于stack exchange,提问作者user308827
相关产品推荐
相关产品推荐

