如何在python中执行逻辑套索?

Fri*_*ant 5 python lasso-regression scikit-learn logistic-regression

scikit-learn包提供了函数Lasso(),LassoCV()但没有选项来适应逻辑函数而不是线性函数...如何在python中执行逻辑套索?

Tom*_*DLT 15

Lasso通过L1惩罚优化了最小二乘问题.根据定义,您无法使用Lasso优化逻辑功能.

如果要优化具有L1惩罚的逻辑函数,可以使用LogisticRegression具有L1惩罚的估计量:

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
log = LogisticRegression(penalty='l1', solver='liblinear')
log.fit(X, y)
Run Code Online (Sandbox Code Playgroud)

请注意,只有LIBLINEAR和SAGA(在v0.19中添加)解算器处理L1惩罚.

  • lasso 不仅仅用于最小二乘问题。任何似然罚分(L1 或 L2)都可以与任何似然公式化模型一起使用,其中包括使用指数族似然函数建模的任何广义线性模型,其中包括逻辑回归。 (4认同)
  • 同意。Lasso 正则化最初是为最小二乘法定义的,现在可以轻松扩展到各种统计模型。但在 scikit-learn 中,“Lasso”类仅包含最小二乘法。其他类包括 L1 正则化(`LogisticRegression`、`NMF`,...),但它被称为“L1 正则化”,而不是“Lasso”。 (2认同)