【问题标题】:ConvergenceWarning: lbfgs failed to converge (status=1)ConvergenceWarning: lbfgs 未能收敛 (status=1)
【发布时间】:2021-05-16 03:26:55
【问题描述】:

我一直在阅读 O'Reilly 的“Python 机器学习简介”。

运行此块时,我收到了收敛警告。

from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(
    cancer.data, cancer.target, stratify=cancer.target, random_state=42)
logreg = LogisticRegression().fit(X_train, y_train)
print("Training set score: {:.3f}".format(logreg.score(X_train, y_train)))
print("Test set score: {:.3f}".format(logreg.score(X_test, y_test)))

我已经看到了几种可能的解决方法,但由于我只是在一般情况下学习,我不确定需要什么。

Original author's notebook

【问题讨论】:

    标签: python scikit-learn jupyter-notebook


    【解决方案1】:

    这意味着您正在使用的数据不处于与给定算法收敛的良好状态。当您使用逻辑回归时,sklearn 的默认 max_iter 值为 100。

    您可以尝试使用StandartScaler 扩展您的数据。这基本上是在为有助于收敛的 ML 算法准备好数据。

    或者你可以换max_iter看看会不会收敛。

    例如:

    logreg = LogisticRegression(max_iter = 1000).fit(X_train, y_train)
    

    【讨论】:

      猜你喜欢
      • 2020-06-20
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多