多元自适应回归样条简介
当一组预测变量和响应变量之间的关系是线性时,我们通常可以使用线性回归,它假设给定的预测变量和响应变量之间的关系采用以下形式:
Y = β 0 + β 1 X + ε
但在实践中,变量之间的关系实际上可能是非线性的,尝试使用线性回归可能会导致模型拟合不佳。
解释预测变量和响应变量之间非线性关系的一种方法是使用多项式回归,其形式为:
Y = β 0 + β 1 X + β 2 X 2 + … + β h
在此等式中, h称为多项式的“次数”。随着我们增加h的值,模型变得更加灵活并且能够适应非线性数据。
然而,多项式回归有一些缺点:
1.如果度h选择太大,多项式回归很容易过度拟合数据集。实际上, h很少大于 3 或 4,因为超过该点,它仅对应于训练集的噪声,并且不能很好地推广到未见过的数据。
2.多项式回归对整个数据集施加全局函数,这并不总是精确的。
多项式回归的替代方法是多元自适应回归样条。
基本思想
多元自适应回归样条的工作原理如下:
1. 将数据集分为k块。
首先,我们将数据集划分为k 个不同的元素。我们划分数据集的点称为节点。
我们通过评估每个预测变量的每个点作为潜在节点并使用候选特征创建线性回归模型来识别节点。模型中能够减少最多错误的点是节点。
一旦我们确定了第一个节点,我们就会重复该过程来查找其他节点。您可以找到您认为合理的任意数量的节点作为开始。
2. 对每个部分拟合回归函数,形成铰链函数。
一旦我们选择节点并将回归模型拟合到数据集中的每个元素,我们最终会得到所谓的铰链函数,用h(xa)表示,其中a是值阈值。
例如,单节点模型的铰链函数可能是:
- y = β 0 + β 1 (4.3 – x) 如果 x < 4.3
- y = β 0 + β 1 (x – 4.3) 如果 x > 4.3
在这种情况下,确定选择4.3作为阈值可以在所有可能的阈值中最大程度地减少误差。然后,我们将不同的回归模型拟合到低于 4.3 的值和高于 4.3 的值。
具有两个节点的铰链函数可以如下:
- y = β 0 + β 1 (4.3 – x) 如果 x < 4.3
- y = β 0 + β 1 (x – 4.3) 如果 x > 4.3 且 x < 6.7
- y = β 0 + β 1 (6.7 – x) 如果 x > 6.7
在这种情况下,确定选择4.3和6.7作为阈值可以在所有可能的阈值中最大程度地减少误差。然后,我们将一个回归模型拟合到低于 4.3 的值,将另一个回归模型拟合到 4.3 到 6.7 之间的值,将另一个回归模型拟合到高于 4.3 的值。
3. 基于k折交叉验证选择k 。
最后,一旦我们为每个模型使用不同数量的节点来拟合几个不同的模型,我们就可以执行k 倍交叉验证来识别产生最低测试均方误差 (MSE) 的模型。
选择具有最低 MSE 检验的模型作为最能概括新数据的模型。
的优点和缺点
多元自适应回归样条具有以下优点和缺点:
优点:
- 它可用于回归和分类问题。
- 这在大型数据集上效果很好。
- 它提供快速计算。
- 这不需要您标准化预测变量。
缺点:
- 它的性能往往不如随机森林和梯度增强机等非线性方法。
如何在 R 和 Python 中拟合 MARS 模型
以下教程提供了如何在 R 和 Python 中拟合多元自适应回归样条 (MARS) 的分步示例:
R 中的多元自适应回归样条
Python 中的多元自适应回归样条