scikit-learn Logistic Regression中有些地方被弃用了。

问题描述 投票:0回答:3

我一直在使用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)

我如何才能摆脱这个废弃的警告?

python scikit-learn logistic-regression
3个回答
2
投票

在scikit-learn v0.20中,你可能使用的是,默认值为 solver 用于 LogisticRegressionliblinear;来自 文件:

求解器 : 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

上面提供的第一个文档链接显示了所有可用的选项,以及对每个选项的一些简短的评论建议。


3
投票

好吧,警告信息正在告诉你。你需要做的就是明确指定使用哪个求解器。

classifier = LogisticRegression(random_state = 0, solver='lbfgs')

(或任何其他你想使用的解算器)

关于可用选项,请参见 sklearn文档.


1
投票

尝试使用

classifier = LogisticRegression(random_state=0, solver="liblinear")

并在文档中查看求解器参数。https:/scikit-learn.orgstablemodulesgeneratedsklearn.linear_model.LogisticRegression.html。

© www.soinside.com 2019 - 2024. All rights reserved.