【问题标题】:Maximum number of iterations must be positive ERROR when using Logistic Regression (python)使用 Logistic 回归 (python) 时,最大迭代次数必须为正 ERROR
【发布时间】:2019-09-25 02:30:48
【问题描述】:
    x_train, x_test, y_train, y_test = 
    sklearn.model_selection.train_test_split(X, y, test_size=0.2, 
    shuffle=False)
    return(x_train, x_test, y_train, y_test)

    logisticR = LogisticRegression(random_state=0, max_iter = '800', 
    solver='saga', multi_class='multinomial')
    logisticR.fit(x_train, encoded_ytrain)

    acc = logisticR.score(x_test, encoded_ytest)
    print(acc)

运行时出现以下错误: ValueError: Maximum number of iteration must be positive;得到 (max_iter='800')

由于max_iter默认为100,有没有其他方法可以改变迭代的大小?

【问题讨论】:

  • 我想到的一件事是我的数据由 673 行组成。 Testsize 大约为 10-30% 将产生一个带有小数而不是整数的 test_size 数字。这会产生影响吗?
  • 请不要将 cmets 空间用于此类附加信息 - 改为编辑和更新您的问题

标签: python machine-learning scikit-learn logistic-regression


【解决方案1】:

其实max_iter应该是int,而不应该是str

您可以尝试以下方法吗:

logisticR = LogisticRegression(random_state=0, max_iter=800, 
    solver='saga', multi_class='multinomial')

【讨论】:

  • 嘿,正如我上面提到的,我改变了这个,现在得到这个:ConvergenceWarning:达到了max_iter,这意味着coef_没有收敛“coef_没有收敛”,ConvergenceWarning)
  • @user3697903 这是一个完全不同的问题(并且是警告,而不是错误)。由于答案解决了您在问题中报告的特定问题,请接受它并为新问题打开一个新问题。后续问题请不要使用 cmets...
【解决方案2】:

为什么你把你的 max_iter 对象值放在一个''中。您正在创建一个 Str。你需要喂一个int。等于800就行了。

【讨论】:

  • 啊,我太笨了。我改变了它,现在我得到:ConvergenceWarning:达到了max_iter,这意味着coef_没有收敛“coef_没有收敛”,ConvergenceWarning)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
  • 2016-11-15
  • 2012-11-11
  • 1970-01-01
  • 2020-03-25
  • 2015-01-18
  • 2016-01-25
相关资源
最近更新 更多