【发布时间】:2019-11-26 21:08:03
【问题描述】:
我正在做多类/多标签文本分类。我试图摆脱“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)))
为什么当 max_iter =4000 时我的准确率会降低? 有没有其他方法可以修复 * "ConvergenceWarning: lbfgs 收敛失败。增加迭代次数。"of iterations.", ConvergenceWarning)" *
【问题讨论】:
标签: python logistic-regression cross-validation multiclass-classification