XGBR 与 CatBoost 性能比较

数据挖掘 Python 回归 xgboost 卡格尔 助推
2022-02-18 13:08:00

我在 CatBoost 网站上看到它应该优于任何其他增强的训练模型,并决定自己在 Kaggle 的https://www.kaggle.com/c/house-prices-advanced-regression-techniques上尝试一下。

我创建了一些基本内核,没有任何复杂的预处理、特征选择、GridSearch、堆叠等……只是为了比较 XGBR 和 CatBoost 的性能。但据我所知,XGBR 总是优于 CatBoost。
https://www.kaggle.com/markbquant/compare-catboostregressor-vs-xgbregressor

CatBoost 参数:iterations=100, depth=3, learning_rate=0.1
XGBR 参数:subsample=0.7, colsample_bytree=0.7, n_estimators=500, learning_rate=0.03, max_depth=5, min_child_weight=3

例如,在 Kaggle 中,XGBR 的得分为 0.134,而 CatBoot 的得分仅为 0.197(我尝试了 one_hot_max_size 和 cat_features)。如果有人能指出 CatBoost 模型有什么问题,我将不胜感激,可能缺少一些优化。

1个回答

执行这样的基准测试并不容易。这意味着不能只选择几个数据集并运行这些模型,因为存在数据依赖性。在这种情况下,需要通过各种过程来模拟数据——模拟有助于设计各种条件下的各种数据。例如,也许模型一在分箱方面做得更好,因此具有各种分箱条件的数据必须事先到位,或者树的深度。所以仅仅挑选房价数据是不够的。

考虑到这样的表现可能真的很小。不要指望10%的差异!他们经常在 1% 以内躺下。

Catboost 与 Xgboost 的区别在于thread safing生产环境。Xgboost不是thread safe- 因此,不能在任何严重的部署环境中使用