我有两个特征,比如F1和F2,它们的相关性约为0.9。
在构建模型时,我首先考虑了回归模型中的所有特征。一旦我有了我的模型,我就会在我的模型上运行套索回归,希望这将解决特征之间的任何共线性问题。但是,套索回归在我的模型中同时保留了 F1 和 F2。
两个问题:
i( 如果 F1 和 F2 高度相关,但套索回归仍然保留了它们,这意味着什么?这是否意味着正则化在某些情况下不起作用?
ii( 如何调整模型或套索回归模型以在模型中踢出 F1 或 F2?(我正在使用sklearn.linear_model。LogisticRegression,并设置了惩罚 = 'l1' 或 'elasticnet',尝试了非常大或非常小的 C 值,尝试了"liblinear"或"saga"求解器,l1_ratio = 1,但我仍然无法从我的模型中踢出 F1 或 F2(
回答您的问题:
i(Lasso
逐渐降低系数。你可能会在套索/脊背后的人罗伯特·蒂布希拉尼(Robert Tibshirani(撰写的一些书中找到一幅漂亮的图片,在那里你会看到一些系数如何随着正则化系数的增加而逐渐下降到零(你可以自己做这样的实验(。模型仍然保留两者的事实可能意味着两件事:要么模型认为两者都很重要,要么没有足够的正则化来杀死其中一个。
ii(你是对的,你正在Lasso
L1
正则化。它是C
参数。它的编码方式是sklearn
:C
越小,正则化参数越高(反(。虽然在机器学习中,你的任务不是完全排除共线性(在你的客厅里"杀死F1或F2"(,而是找到一个模型(或者一组参数,如果你愿意的话(,可以最好地泛化。这是通过CV的模型调整来完成的。 警告:更高的正则化意味着更多的欠拟合。
我想补充一点,共线性对于线性回归来说有些危险,因为它可能会导致模型不稳定(不同子样本上的系数不同(。因此,对于线性回归,您可能也希望检查这一点。