解释当我们将截距包括在数据中时,为什么Lasso回归截距与模型拟合截距本身不同



所以我试图拟合一个具有多项式特征的Lasso回归模型。

为了创建这些多项式特征,我使用from sklearn.preprocessing import PolynomialFeatures

它有一个参数inclue_bias,可以设置为True或False作为PolynomialFeatures(degree=5, include_bias=False)。这个偏差只不过是表示最终方程中截距的1列。正如在另一个答案中详细解释的那样。

当我设置include_bias=True然后在没有截距的情况下拟合Lasso回归时,问题就出现了,因为它已经被处理过了,或者我选择不包括偏差并从sklearn.linear_model import Lasso中设置fit_intercept=True。他们在技术上应该给出截距系数的结果,对吗?但事实证明,它们并不是一样的。

scikit learn内部是否存在一些错误,或者我在这里缺少了什么?如果有人想用一些数据自己尝试一下,请告诉我。我来分享一些。

PolynomialFeatures.include_bias=True而不是Lasso.fit_intercept=False时,套索模型认为all-ones列只是另一个特性,因此"截距项";受到L1处罚。当PolynomialFeatures.include_bias=FalseLasso.fit_intercept=True时,套索模型知道不惩罚其拟合的截距。

最新更新