用scikit-learn训练logistic回归进行多类分类

2024-04-24 03:22:25 发布

您现在位置:Python中文网/ 问答频道 /正文

根据scikit multiclass classification Logistic回归可用于通过设置 multi_class=构造函数中的多项式。但这样做会产生错误:

代码:

text_clf = Pipeline([('vect', TfidfVectorizer()),('clf', LogisticRegression(multi_class = 'multinomial')),])
text_clf = text_clf.fit(X_train, Y_train)

错误:

值错误:解算器liblinear不支持多项式后端。

你能告诉我这里怎么了吗?

注意:保持multi_类为空,即“ovr”工作正常,但它适合每个分类器的二元模型,我还想尝试多值特征。


Tags: 代码textpipeline错误trainscikitmulticlass
2条回答

doc

Currently the ‘multinomial’ option is supported only by the ‘lbfgs’ and ‘newton-cg’ solvers.

因此需要显式地将solver设置为'newton-cg'lbfgs',因为默认解算器是'liblinear'

看起来您没有提供solver&;默认情况下,solver设置为不支持多类的“liblinear”。 根据sklearn版本0.20.1,“newton cg”、“lbfgs”、“sag”、“saga”而不是“liblinear”支持multiclass,因此请按照以下代码更改LogisticRegression的实例创建 logReg=logisticRegregation(multi戋class='多项式',solver='牛顿-cg')

解算器必须是“newton cg”、“lbfgs”、“sag”、“saga”中的任何内容,但不能为左

相关问题 更多 >