pythonscikit-learnlogistic-regressionlasso-regression

How to perform logistic lasso in python?


The scikit-learn package provides the functions Lasso() and LassoCV() but no option to fit a logistic function instead of a linear one...How to perform logistic lasso in python?


Solution

  • The Lasso optimizes a least-square problem with a L1 penalty. By definition you can't optimize a logistic function with the Lasso.

    If you want to optimize a logistic function with a L1 penalty, you can use the LogisticRegression estimator with the L1 penalty:

    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)
    

    Note that only the LIBLINEAR and SAGA (added in v0.19) solvers handle the L1 penalty.