我一直在使用有关Udemy的课程来学习机器学习。我发现了很多不推荐使用的代码,现在出现了这个问题:
代码:
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state = 0)
classifier.fit(X_train, y_train)
警告:
C:\Users\admin\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.
FutureWarning)
如何摆脱此弃用警告?
答案 0 :(得分:3)
好吧,警告消息正在告诉您。您需要做的就是明确指定要使用的求解器:
classifier = LogisticRegression(random_state = 0, solver='lbfgs')
(或您要使用的任何其他求解器)
有关可用选项,请参见the sklearn docs。
答案 1 :(得分:3)
在您可能使用的scikit-learn v0.20中,solver
中使用的LogisticRegression
的默认值为liblinear
;来自docs:
求解器: str,{'newton-cg','lbfgs','liblinear','sag','saga'},默认值:'liblinear'
这在v0.22(最新)中更改为lbfgs
。
因此,为了避免对此更改感到惊讶,scikit-learn将警告您进行默认更改,即将用于将来的版本,以使您的代码永不过时。 / p>
要摆脱它,只需在您的LogisticRegression
定义中明确定义一个求解器,即
classifier = LogisticRegression(random_state = 0, solver='lbfgs') # default in v0.22
或
classifier = LogisticRegression(random_state = 0, solver='liblinear') # default until v0.21
上面提供的第一个文档链接显示了所有可用选项,以及对每个选项的一些简短评论/建议。
答案 2 :(得分:1)
尝试使用
classifier = LogisticRegression(random_state=0, solver="liblinear")
文档中的检出求解器参数:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html