在sklearn弹性网中,alpha和l1_ratio如何与lambda_1和lambda_2相关

时间:2014-03-19 10:31:28

标签: python scikit-learn

在Zou和Hastie http://www.stanford.edu/~hastie/Papers/elasticnet.pdf的论文中,弹性网用两个正则化参数λ1和λ2定义。它们还提供另一种形式,使用弹性净惩罚项a,其中约束α定义为α=λ2/λ1+λ2。

我的问题是在scikit-learn弹性网络模块中,alpha和l1_ratio参数与论文中的参数之间的关系是什么?

据我所知,sklearn中的l1_ratio等于λ2/λ1+λ2。而sklearn中的alpha是等于λ1+λ2.这是正确的吗?

1 个答案:

答案 0 :(得分:1)

这是用docstring of the ElasticNet类编写的:

sklearn.linear_model.ElasticNet最小化的目标函数是:

1 / (2 * n_samples) * ||y - Xw||^2_2 + alpha * l1_ratio * ||w||_1 + 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2

所以lamba_1 == alpha * l1_ratiolambda_2 == 0.5 * alpha * (1 - l1_ratio)