我在代码中尝试实现sklearn的Lasso。为了测试,我决定使用alpha = 0
进行测试。理论上,这应该与LinearRegression
产生相同的结果,但实际情况并非如此。
这是代码:
输出结果:
-485.3744897927978-480.89071679937786
coef_
的值也完全不同。
我做错了什么?
回答:
确实,这似乎产生了不同的结果。然而,运行你的代码时,还产生了以下警告:
ft = Lasso(alpha=0).fit(X, y)print(ft.intercept_)ft = LinearRegression().fit(X, y)print(ft.intercept_)-485.3744897927984-480.89071679937854
UserWarning: 当alpha=0时,该算法不会很好地收敛。建议您使用LinearRegression估算器
这是在提醒您,由于alpha=0
,意味着我们只剩下普通的线性回归,算法不会很好地收敛。这就是为什么您会看到截距的差异,并且可能导致指标的恶化。