python机器学习分类虹膜数据集

时间:2021-02-02 18:45:41

标签: python

当我在训练数据集上训练模型时,我得到低于错误。任何人都可以帮忙

在训练数据集上训练模型

logreg = LogisticRegression()
logreg.fit(x_train,y_train)
logreg =LogisticRegression (solver='lbfgs', max_iter=9000)

产生:

/Users/aswanthmanne/opt/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:763: ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
  n_iter_i = _check_optimize_result(

1 个答案:

答案 0 :(得分:0)

尽管该问题缺乏信息,但这里有一些提示可以使其发挥作用:

  1. 数据不充分,而且由于数据集是我们已知的,因此存在分离问题,应如下所示:
from sklearn.selection import train_test_split
from sklearn.datasets import load_iris
iris = load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.iloc[:, :4], iris.target)
  1. 目标没有标准化,以前的代码也可以解决这个问题。

  2. 还有求解器的问题,我不认为这可能是原因,但值得讨论。以下是sklearn逻辑回归solver的文档:

<块引用>

solver{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default='lbfgs' 用于优化问题的算法。

对于小数据集,‘liblinear’是一个不错的选择,而‘sag’和 'saga' 对大的来说更快。

对于多类问题,只有“newton-cg”、“sag”、“saga”和“lbfgs” 处理多项式损失; “liblinear”仅限于一对一休息 方案。

'newton-cg'、'lbfgs'、'sag' 和 'saga' 处理 L2 或无惩罚

‘liblinear’ 和 ‘saga’ 也处理 L1 惩罚

‘saga’也支持‘elasticnet’惩罚

‘liblinear’ 不支持设置惩罚='none'

注意‘sag’和‘saga’快速收敛仅在 具有大致相同比例的特征。你可以预处理 数据与来自 sklearn.preprocessing 的缩放器。