我一直在使用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)
我如何才能摆脱这个废弃的警告?
在scikit-learn v0.20中,你可能使用的是,默认值为 solver
用于 LogisticRegression
是 liblinear
;来自 文件:
求解器 : str, {'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'}, 默认:'liblinear' 。.
这种情况在 v0.22 (当前最新)至 lbfgs
.
所以,为了避免这个变化带来的意外,scikit-learn会在默认情况下警告你这个变化 会 在未来的版本中出现,以保证你的代码面向未来。
要摆脱它,只需在你的代码中明确定义一个求解器。LogisticRegression
定义,即
classifier = LogisticRegression(random_state = 0, solver='lbfgs') # default in v0.22
或
classifier = LogisticRegression(random_state = 0, solver='liblinear') # default until v0.21
上面提供的第一个文档链接显示了所有可用的选项,以及对每个选项的一些简短的评论建议。
好吧,警告信息正在告诉你。你需要做的就是明确指定使用哪个求解器。
classifier = LogisticRegression(random_state = 0, solver='lbfgs')
(或任何其他你想使用的解算器)
关于可用选项,请参见 sklearn文档.
尝试使用
classifier = LogisticRegression(random_state=0, solver="liblinear")
并在文档中查看求解器参数。https:/scikit-learn.orgstablemodulesgeneratedsklearn.linear_model.LogisticRegression.html。