scikitlearn Logistic回归解算器中的未来警告

2024-04-26 00:53:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我怎样才能摆脱这个弃用警告


Tags: to代码机器警告modeltrainsklearn课程
3条回答

在您可能使用的scikit learn v0.20中,在LogisticRegression中使用的solver的默认值为liblinear;从docs开始:

solver : str, {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default: ‘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="liblinear")

和文档中的checkout solver参数:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

嗯,警告信息告诉你。您只需明确指定要使用的解算器:

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

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

有关可用选项,请参见the sklearn docs

相关问题 更多 >