xgboost 的偏差预测(高估)

机器算法验证 无偏估计器 助推 弹性网
2022-04-12 00:52:39

我在同一个数据集上运行 xgboost 和 elastic-net 来解决分类问题,比如说我们有

y_train, y_test
y_train_xgboost_prediction, y_test_xgboost_prediction
y_train_elastic_net_prediction, y_test_elastic_net_prediction

我发现 xgboost 给出的预测平均值远高于实际标签,即

average(y_train_xgboost_prediction) > average(y_train)
average(y_test_xgboost_prediction) > average(y_test)

而弹性网络给出的预测平均值与实际标签的平均值相似,即

average(y_train_elastic_net_prediction) ~= average(y_train)
average(y_test_elastic_net_prediction) ~= average(y_test)

实际上 xgboost 的 AUC 比 elastic-net 高,在这种情况下我们应该更喜欢哪种模型?我们如何解决 xgboost 预测中的偏差?

1个回答

所描述的并不令人惊讶。Boosting 方法通常不能给出经过良好校准的概率预测(例如,参见 Caruana 等人(2004 年)模型库中的集成选择、Niculescu-Mizil 和 Caruana(2005 年)用监督学习预测好的概率)。基于 GLM 的方法提供更一致的边际概率,因为它们具有直接的概率联系。

也就是说,概率估计可以在后续步骤中进行校准(例如,通过等渗回归beta 校准)。请注意,这些方法通常应用于单独的保留样本。检查 Kull 等人的论文。(2017 年)Beta 校准:对二元分类器的逻辑校准有充分根据且易于实施的改进,无论是否使用 Beta 校准,它都对此事进行了非常好的现代阐述。

模型的选择取决于我们想用它做什么/使用它的估计。我们是否更关心估计的顺序或边际概率?例如,如果我们关心预测的“公平性”,边际估计就更重要了。另一方面,如果我们想为特定治疗选择“最有可能的前 X 个”项目,AUC 更为重要。概率校准技术试图在一定程度上弥补这一差距。