Scikit learn 套索路径[线性模型.lars路径(模型=';套索';)]
在scikit学习中运行Scikit learn 套索路径[线性模型.lars路径(模型=';套索';)],scikit-learn,sparse-matrix,lasso-regression,lars,Scikit Learn,Sparse Matrix,Lasso Regression,Lars,在scikit学习中运行线性_模型.lars_路径(模型='lasso')时,我对套索路径的行为感到困惑 我认为,一旦权重(系数)变为活动状态(从0开始的差异),它必须在LARS算法的所有后续步骤中保持活动状态 当在我的数据上运行算法时,我注意到有时系数会变为活动的,然后它会变为零(从活动集中删除)。这是LARS算法的正确行为,还是scikit学习实现中存在错误 对于L1正则化版本的LAR来说,这是正确的行为(L1正则化回归通常被称为“套索”) 在L1版本中,如果沿LAR路径的步骤导致数据矩阵的
线性_模型.lars_路径
(模型='lasso')时,我对套索路径的行为感到困惑
我认为,一旦权重(系数)变为活动状态(从0开始的差异),它必须在LARS算法的所有后续步骤中保持活动状态
当在我的数据上运行算法时,我注意到有时系数会变为活动的,然后它会变为零(从活动集中删除)。这是LARS算法的正确行为,还是scikit学习实现中存在错误 对于L1正则化版本的LAR来说,这是正确的行为(L1正则化回归通常被称为“套索”) 在L1版本中,如果沿LAR路径的步骤导致数据矩阵的列与残差的相关性的符号与相应回归系数的符号不同(例如,
sgn(x_i^\top(y-x\beta))!=sgn(\beta_i)
),则该列/系数将从活动路径中移除。(您可以在Efron等人2003年的论文“最小角度回归”中找到原始描述。)
相反,在L0正则化版本的LARS中,活动集在每次迭代时都会增长。这对于L1正则化版本的LARS来说是正确的行为(而L1正则化回归通常被称为“套索”) 在L1版本中,如果沿LAR路径的步骤导致数据矩阵的列与残差的相关性的符号与相应回归系数的符号不同(例如,
sgn(x_i^\top(y-x\beta))!=sgn(\beta_i)
),则该列/系数将从活动路径中移除。(您可以在Efron等人2003年的论文“最小角度回归”中找到原始描述。)
相反,在L0正则化版本的LARS中,活动集在每次迭代时都会增长。是的,这是可能的。也许可以看看《统计学习元素》一书,了解更多关于线性模型中路径算法的细节。是的,这是可能的。关于线性模型中的路径算法的更多细节,请参阅《统计学习的元素》一书。