scikit-learn 逻辑回归求解器中的 FutureWarning
FutureWarning in scikit-learn Logistic Regression solver
我一直在使用 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)
我怎样才能摆脱这个弃用警告?
嗯,警告信息告诉你了。您需要做的就是明确指定要使用的求解器:
classifier = LogisticRegression(random_state = 0, solver='lbfgs')
(或您要使用的任何其他求解器)
有关可用选项,请参阅 the sklearn docs。
尝试使用
classifier = LogisticRegression(random_state=0, solver="liblinear")
并检查文档中的求解器参数:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
在您可能使用的 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
上面提供的第一个文档 link 显示了所有可用选项,以及每个选项的一些简短 comment/advice。
我一直在使用 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)
我怎样才能摆脱这个弃用警告?
嗯,警告信息告诉你了。您需要做的就是明确指定要使用的求解器:
classifier = LogisticRegression(random_state = 0, solver='lbfgs')
(或您要使用的任何其他求解器)
有关可用选项,请参阅 the sklearn docs。
尝试使用
classifier = LogisticRegression(random_state=0, solver="liblinear")
并检查文档中的求解器参数:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
在您可能使用的 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
上面提供的第一个文档 link 显示了所有可用选项,以及每个选项的一些简短 comment/advice。