LightGBM 警告:"Met abs(label) < 1"

LightGBM warning: "Met abs(label) < 1"

我正在使用 MAPE(平均绝对百分比误差)进行回归 objective 和 eva_metric。

以下警告是什么意思?

[LightGBM] [Warning] Met 'abs(label) < 1', will convert them to '1' in MAPE objective and metric

此问题已交叉发布到 LightGBM 问题页面。从那里复制我的答案 (hhttps://github.com/microsoft/LightGBM/issues/3608#issuecomment-735930682).

您的目标变量中有绝对值 < 1 的值。MAPE 在这种情况下不稳定,因此 LightGBM 在评估之前将这些值转换为 1.0。此警告告诉您正在发生这种情况。

发生此舍入的代码:https://github.com/microsoft/LightGBM/blob/3e8e24b374fbfe6522e39862a79c81b2bea8b259/src/metric/regression_metric.hpp#L248-L250

要了解这种不稳定性,请考虑以下针对单个预测的 MAPE。

像这样四舍五入到 1 也避免了计算 MAPE 失败并出现被零除错误的情况,因为目标正好是 0。

如果您想使用 MAPE 作为评估指标并且对 LightGBM 在此设置中使用舍入来计算它的方式感到不舒服,我建议更改您的目标变量以确保所有值都 > 1 的绝对值值。