也许只是我很累,但是在尝试理解前向逐步回归算法时遇到了麻烦。从“统计学习要素”第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),并且预测精度根本不是很好。