XGBoost 非线性回归

数据挖掘 回归 xgboost 对数
2021-10-12 15:46:32

是否可以使用 XGBoost 回归器进行非线性回归?

我知道目标linearlogistic.
linear目标与gblinear助推器配合得非常好。
这让我想知道是否可以将 XGBoost 用于对数或多项式回归等非线性回归。

a) 通常是否可以像在 CNN 中那样进行多项式回归,其中 XGBoost 通过生成 n 多项式函数来逼近数据?
b) 如果 a) 通常是不可能的,是否可以用它的参数声明一条曲线并让 XGBoost 计算出参数的值?(举个例子)假设我们猜测曲线可以近似为:

10alogk(x)b

XGBoost 必须弄清楚 a, k, 和 b. x 将是一个给定的功能。

1个回答

提升只是通过尝试连续/重复“解释”残差来拟合某些模型的特殊方法。在此处查看线​​性助推器的最小示例所以本质上xgboost模型gblinear将是一个“正常”的线性模型

从您的问题来看,我不希望线性助推器在您的问题背景下提供良好的结果。我认为如果您想使用 NN 以外的其他模型,您有多种选择。

  • 使用“基于树”( gbtree) 的提升。这将适合本质上是“非参数”的模型。但是,此策略的成功将取决于您的“x”变量的解释能力(您在问题中没有提到)。
  • 使用具有更一般结构的线性模型(即广义加法模型,GAM)。这些模型系列非常适合拟合高度非线性的函数。在这里找到一个最小的例子Python 和 R 有 GAM。我的最小示例将产生以下结果(见图)。蓝线是“正常”线性模型,黑线是拟合的 GAM 模型(红色是基本事实)。
  • 如果您知道模型的参数化(或多或少),您还可以定义一个线性模型(具有适当的参数化)来求解您的模型。然而,这似乎是一个不太有吸引力的解决方案。为数据找到合适的表示可能会令人生畏。

如果您想进一步了解,Statistical Learning (ISL) 简介提供了 GAM 模型的一个很好的概述。ISL也有Python 示例

在此处输入图像描述