首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python: Logistic回归max_iter参数降低了准确性

Python: Logistic回归max_iter参数降低了准确性
EN

Stack Overflow用户
提问于 2019-07-18 01:30:42
回答 2查看 18.1K关注 0票数 4

我正在进行多类/多标签文本分类。我试着摆脱"ConvergenceWarning“。

当我将max_iter从默认调到4000时,警告就消失了。然而,我的模型精度从78降低到75

代码语言:javascript
运行
复制
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score


logreg = Pipeline([('vect', CountVectorizer()),
            ('tfidf', TfidfTransformer()),
            ('clf', LogisticRegression(n_jobs=1, C=1e5, solver='lbfgs',multi_class='ovr' ,random_state=0, class_weight='balanced' )),
           ])
logreg.fit(X_train, y_train)


y_pred = logreg.predict(X_test)

print('Logistic Regression Accuracy %s' % accuracy_score(y_pred, y_test))

cv_score = cross_val_score(logreg, train_tfidf, y_train, cv=10, scoring='accuracy')
print("CV Score : Mean : %.7g | Std : %.7g | Min : %.7g | Max : %.7g" % (np.mean(cv_score),np.std(cv_score),np.min(cv_score),np.max(cv_score)))

为什么当max_iter =4000时,我的准确度会降低?是否有其他方法来修复* "ConvergenceWarning: lbfgs无法收敛。增加迭代次数。"of iterations.",ConvergenceWarning)“*

EN

回答 2

Stack Overflow用户

发布于 2020-01-05 19:36:59

它遗漏了问题中使用的数据,所以不可能重现问题,只是猜测而已。

有些事情需要检查:

1)许多估计器(如LogisticRegression )喜欢(更不用说需要)缩放数据。根据您的数据,您可能希望使用MaxAbsScalerMinMaxScalerStandardScalerRobustAScaler进行缩放。最优选择取决于您要解决的问题类型、稀疏性等数据特性、负值是否受到下游估计器的欢迎等。缩放数据通常会加快收敛速度,甚至可能不需要增加max_iter

2)根据我的经验,如果给定相同的输入数据,solver而不是"liblinear"需要更多的max_iter迭代来收敛。

3)我没有看到任何‘max_iterset in your code snippet. It currently defaults to100’(sklearn 0.22)。

4)我看到您设置了正则化参数C=100000。它大大减少了正则化,因为C是正则化强度的反比。预计它会消耗更多的迭代,并可能导致模型过度匹配。

5)我没想到max_iter越高,准确度就越低。求解者是发散而不是收敛。数据可能不会缩放,或者随机状态不固定,或者容差tol (默认值1e-4)变得很高。

6)检查cross_val_score交叉验证参数cv。如果我没有错,默认行为不会设置随机状态,从而导致可变的平均精度。

票数 3
EN

Stack Overflow用户

发布于 2021-10-30 03:45:01

在我的例子中,我增加了max_iter的小增量(从默认的100增加到400,然后间隔400),直到消除了警告。有趣的是,它提高了模型的性能参数(准确性、精确性、回忆性、F1评分)。从直觉上看,这是有意义的,因为现在收敛发生了,您达到了最优的解决方案,而在前面的情况下,您没有。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57085897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档