什么是前向逐步回归算法?

机器算法验证 回归 算法 特征选择
2022-02-05 13:01:14

也许只是我累了,但我在尝试理解 Forward Stagewise Regression 算法时遇到了麻烦。来自“统计学习要素”第 60 页:

前向逐步回归 (FS) 比前向逐步回归更受限制。它像前向逐步回归一样开始,截距等于 y 的 [均值] ,并且系数最初都为 0 的居中预测变量。

在每一步,算法都会识别与当前残差最相关的变量。然后它计算这个所选变量的残差的简单线性回归系数,然后将其添加到该变量的当前系数。这一直持续到没有一个变量与残差相关——即当 N > p 时最小二乘拟合。

那么,这是算法吗?:

b[1]=mean(y)
b[2..n]=0
r=(y-X*b)
index, maxCorr = max(transpose(r)*X)
while(abs(maxCorr) > someThreshold)
  b[index]=b[index]+regress(r,X[1..n][index])
  r=(y-X*b)
  index, maxCorr = max(transpose(r)*X)

其中 b 是系数的列向量,X 是输入矩阵,y 是输出的列向量。即y=X*b+误差。

问是因为这个算法在我正在测试它的数据集上只给了我几个非零系数(阈值 = .0001),并且预测准确度根本不是很好。

1个回答

他们的作者在解释书中的算法方面做得很差。如果你看一下他们论文中的方程 1.6 和 1.7 ,它会变得更清楚。该论文的公式略有不同(它构建的是残差而不是系数向量),但关键是它以非常小的步骤达到最小二乘拟合(这就是为什么书中提到该算法可以采取“更多比 p 步”完成)。您可以用一些小数替换“regress(...)”,也可以将其乘以 0.05。玩弄它,看看有什么用。

此外,您的门槛似乎很小。r'*X 将给出与实际相关性成比例但远大于实际相关性的数字(例如,对于论文中的糖尿病数据,相关性约为 70-900)。