use*_*129 16 python scikit-learn
我正在使用带有 LogisticRegression 的嵌入式方法(L1 - Lasso)运行分类问题的特征选择过程。
我正在运行以下代码:
from sklearn.linear_model import Lasso, LogisticRegression
from sklearn.feature_selection import SelectFromModel
# using logistic regression with penalty l1.
selection = SelectFromModel(LogisticRegression(C=1, penalty='l1'))
selection.fit(x_train, y_train)
Run Code Online (Sandbox Code Playgroud)
但我得到了异常(在fit命令上):
selection.fit(x_train, y_train)
File "C:\Python37\lib\site-packages\sklearn\feature_selection\_from_model.py", line 222, in fit
self.estimator_.fit(X, y, **fit_params)
File "C:\Python37\lib\site-packages\sklearn\linear_model\_logistic.py", line 1488, in fit
solver = _check_solver(self.solver, self.penalty, self.dual)
File "C:\Python37\lib\site-packages\sklearn\linear_model\_logistic.py", line 445, in _check_solver
"got %s penalty." % (solver, penalty))
ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.
Run Code Online (Sandbox Code Playgroud)
我跑下python 3.7.6和sscikit-learn version is 0.22.2.post1
出了什么问题,我该如何解决?
Ary*_*thy 29
这在文档中得到了澄清。
求解器:{'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'}, default='lbfgs'
...
'newton-cg'、'lbfgs'、'sag' 和 'saga' 处理 L2 或无惩罚
'liblinear' 和 'saga' 也处理 L1 惩罚
像这样调用它:
LogisticRegression(C=1, penalty='l1', solver='liblinear')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17844 次 |
| 最近记录: |