sklearn LassoLars在alpha=0时的解不是最小二乘



我试图理解代码中的数值不稳定性,当惩罚系数α =0时,它会导致解偏离最小二乘。这个问题在文档中被提及,但没有在它失败的地方被提及。我有一个例子,它不能给出五个分量中只有一个的最小二乘解。我很难找到代码中不良行为的根源。有人有什么想法吗?

from sklearn import linear_model
import numpy as np
y= np.array([ -6.45006793,  -3.51251449,  -8.52445396,   6.12277822, -19.42109366])
x=np.array([[ 0.47299829,  0.        ,  0.        ,  0.        ,  0.        ],
   [ 0.08239882,  0.85784863,  0.        ,  0.        ,  0.        ],
   [ 0.30114139, -0.07501577,  0.80895216,  0.        ,  0.        ],
   [-0.01460346, -0.1015233 ,  0.0407278 ,  0.80338378,  0.        ],
   [-0.69363927,  0.06754067,  0.18064514, -0.0803561 ,  0.40427291]])
test=linear_model.LassoLars(0, fit_intercept=False)
test.fit(x.T, y)
test_compare=linear_model.LinearRegression(fit_intercept=False)
test_compare.fit(x.T, y)
test.coef_- test_compare.coef_

系数差的输出(test。Coef_ - test_compare.coef_) is:

array([  4.26325641e-14,  -5.96744876e-15,  -3.57739709e+00,
     1.37667655e-14,   2.84217094e-14])

谢谢!

代码中有一个bug !

https://github.com/scikit-learn/scikit-learn/issues/7778https://github.com/scikit-learn/scikit-learn/pull/7849 issuecomment - 259796642

相关内容

  • 没有找到相关文章

最新更新