CatBoost 与其他增强算法
如今,增强算法是针对结构化(表格)数据进行训练的最有效方法之一。以下三种众所周知的增强算法用途提供了赢得机器学习竞赛的各种方法:CatBoost、XGBoost 和 LightGBM。
本章的主要主题是 CatBoost 与其他算法相比的表现如何,以及何时应该使用它而不是其他方法。
所有三种评估算法(CatBoost、XGBoost 和 LightGBM)的基础都是梯度增强技术。在我们继续深入掌握梯度增强时,这将很有用。预测连续变量和分类变量的两种梯度增强算法分别是分类器和回归。
除了自适应增强 (Adaboost) 之外,该方法还包括使用梯度下降优化程序降低弱学习者的差分损失函数来训练学习者。因此,每个学生都会获得平等的权重分配。梯度增强使用串联的决策树作为弱学习者。
由于其顺序构造,其中决策树一次添加一个而不会影响已经存在的决策树,因此它是一个分阶段的加法模型。
减少模型的偏差误差是梯度增强的主要目标。由于其贪婪算法,该算法可以根据偏差方差权衡非常快速地过度拟合训练数据集。但是,为了减少这种过度拟合,可以应用正则化、收缩、树限制和随机梯度提升。
CatBoost 概述
与 XGBoost 和 LightGBM 排名器类似,CatBoost 还具有一种称为 CatBoostRanking 的排名模式,但 CatBoost 提供了比 XGBoost 和 LightGBM 更强大的版本。差异包括 −
排名 (YetiRank、YetiRankPairwise)
成对 (PairLogit、PairLogitPairwise)
排名 + 分类 (QueryCrossEntropy)
排名 + 回归 (QueryRMSE)
选择前 1 名候选人 (QuerySoftMax)
此外,CatBoost 提供排名基准,比较 CatBoost、XGBoost 和 LightGBM 的几种排名变体,例如 −
CatBoost:RMSE、QueryRMSE、PairLogit、PairLogitPairwise、YetiRank, YetiRankPairwise
XGBoost:reg:linear、xgb-lmart-ndcg、xgb-pairwise
LightGBM:lgb-rmse、lgb-pairwise
CatBoost 参数
虽然 XGBoost 和 CatBoost 使用相同的训练参数,但它具有更灵活的参数调整界面。下表快速比较了三种 boosting 方法提供的参数。
Function | CatBoost | XGBoost | LightGBM |
---|---|---|---|
控制过度拟合的参数 | learning_rate、depth、l2_reg | learning_rate、max_depth、min_child_weight | learning_rate、Max_depth、Num_leaves、min_data_in_leaf |
处理分类值的参数 | cat_features、one_hot_max_size | N/A | Categorical_feature |
控制速度的参数 | rsm、迭代 | colsample_bytree、子采样, n_estimators | feature_fraction、bagging ratio、num_iterations |
CatBoost vs XGBoost vs LightGBM
本节将比较算法、特性、性能和速度、过拟合控制参数、速度控制参数和社区支持。因此,请查看下表以了解差异 −
因素 | CatBoost | XGBoost | LightGBM |
---|---|---|---|
算法基础 | CatBoost 专为分类数据而设计,可原生处理分类特征,无需对其进行预处理。 | 专注于梯度提升并有效处理缺失数据。在比赛中以准确度和速度著称。 | 专注于大数据集,通过使用基于直方图的方法加快训练速度,使其对大型稀疏数据集非常有效。 |
处理分类特征 | 强大的优势在于它可以直接使用 cat_features 处理分类特征,而无需手动转换。 | 不原生处理分类特征,需要转换为独热编码等数字格式。 | 使用 Categorical_feature 参数支持分类特征,但效率不如 CatBoost。 |
速度和性能 | 通常比 LightGBM 慢,但在处理分类数据时针对速度和准确性进行了优化。 | 与 LightGBM 相比速度较慢,但提供更稳定和在不同数据集上获得准确的结果。 | 以其速度而闻名,尤其是在处理大型数据集时。由于其采用逐叶增长策略,因此训练速度更快。 |
过度拟合控制参数 | 使用 learning_rate、depth 和 l2_reg 等参数避免过度拟合。 | 使用 learning_rate、max_depth 和 min_child_weight 控制过度拟合。 | 使用 learning_rate、Max_depth、Num_leaves 和 min_data_in_leaf 通过精确的树控制来管理过度拟合。 |
速度控制参数 | rsm 和 iteration 等参数有助于控制模型训练的速度。 | 可以使用 colsample_bytree、subsample 和 n_estimators 调整速度。 | 使用 feature_fraction、bagging_fraction 控制,和 num_iterations 进行速度调整。 |
社区支持 | 与 XGBoost 和 LightGBM 相比,它很受欢迎,但社区规模较小。 | 非常受欢迎,拥有广泛的社区支持、教程和预建模型。 | 在大规模任务中速度极快,用户社区强大。 |
结论 | 最适合直接处理分类特征而无需预处理。 | 非常适合通用任务,其中准确性是关键,而训练时间不是主要问题。 | 非常适合大型数据集,尤其是在需要快速训练和可扩展性能的情况下。 |