小编nur*_*anu的帖子

Python:逻辑回归max_iter参数降低了准确性

我正在做多类/多标签文本分类。我试图摆脱“ConvergenceWarning”。

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

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)))
Run Code Online (Sandbox Code Playgroud)

为什么当 max_iter = 4000 时我的准确率会降低?有没有其他方法可以修复 *“ConvergenceWarning:lbfgs 未能收敛。增加迭代次数。“迭代次数。”,ConvergenceWarning)”*

python cross-validation logistic-regression multiclass-classification

8
推荐指数
1
解决办法
3万
查看次数