作为课程的一部分,我尝试使用Python中的scikit-learn来实现L1逻辑回归。不幸的是,对于以下代码
clf, pred = fit_and_plot_classifier(LogisticRegression(penalty = 'l1', C=1000000))
我收到了错误消息
ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.
我尝试设置l1_ratio
clf, pred = fit_and_plot_classifier(LogisticRegression(l1_ratio = 1))
但得到了错误消息
C:\Users\HP\Anaconda3\lib\site-packages\sklearn\linear_model\_logistic.py:1499: UserWarning: l1_ratio parameter is only used when penalty is 'elasticnet'. Got (penalty=l2)"(penalty={})".format(self.penalty))
那么,如何实现L1逻辑回归呢?
回答:
你可以像第一个代码片段中那样做,但你需要定义另一个求解器。使用‘liblinear’或‘saga’,查看文档以了解更多信息。