如何将梯度提升预测约束为非负数?

机器算法验证 回归 机器学习 助推
2022-04-09 22:30:38

我有一个目标总是非负的回归问题,我使用gbdt作为模型,但有时模型输出负预测值。有没有办法使用gbdt输出非负值,或者如何对非负目标(预测值)施加约束gbdt 或任何其他机器学习模型?

1个回答

一种方法是转换您的数据,使您的“真实”变量的负值是不可能的。例如,假设您有一个响应变量 Y。定义 W(Y) = log(Y),然后使用 W 作为您的响应变量进行回归。取您的预测值,并将它们取幂以返回 Y。您的模型可能会返回 W 的负值,但 e^W 将始终为正。

当然,这会引发其他问题,例如异方差性和非线性(尽管如果您将结果限制为正数,那么它一开始就不是线性的)。您可以玩转其他功能;你只需要两个函数使得它们互为倒数,并且其中一个具有只有非负数的共域。您应该考虑为什么您期望 Y 总是积极地指导您决定使用什么功能。fg