根据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)
错误:
ValueError:求解器liblinear不支持多项后端。
你能告诉我这里有什么问题吗?
注意:保持multi_class为空,即“ovr”工作正常,但它适合每个分类器的二进制模型,我也想尝试mutlinomial功能。
答案 0 :(得分:14)
来自doc:
目前,'multinomial'选项仅受'lbfgs'和'newton-cg'解算器的支持。
因此,您需要明确将solver
设置为'newton-cg
'或'lbfgs'
,因为默认解算器为'liblinear'
。
答案 1 :(得分:1)
您似乎没有提供求解器,并且默认情况下,求解器设置为不支持多类的“ liblinear ”。 根据sklearn版本0.20.1,“ newton-cg”,“ lbfgs”,“ sag”,“ saga”不受“ liblinear”支持,因此请按照以下代码更改LogisticRegression的实例创建 logReg = LogisticRegression(multi_class ='multinomial',求解器='newton-cg')
求解器必须是“ newton-cg”,“ lbfgs”,“ sag”,“ saga”中的任何一种,但不能保留