繁体   English   中英

使用 scikit learn 训练逻辑回归进行多类分类

[英]Training logistic regression using scikit learn for multi-class classification

根据scikit 多类分类逻辑回归可以通过在构造函数中设置 multi_class=multinomial 用于多类分类。 但是这样做会出错:

代码:

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

错误:

ValueError:Solver liblinear 不支持多项式后端。

你能告诉我这里有什么问题吗?

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

文档

目前只有 'lbfgs' 和 'newton-cg' 求解器支持 'multinomial' 选项。

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

看起来您没有提供求解器,并且默认求解器设置为不支持多类的“ liblinear ”。 根据 sklearn 0.20.1 版,'newton-cg'、'lbfgs'、'sag'、'saga' 支持多类而不是 'liblinear',因此按照以下代码更改 LogisticRegression 的实例创建

logReg = LogisticRegression(multi_class='multinomial', solver='newton-cg')

求解器必须是“newton-cg”、“lbfgs”、“sag”、“saga”中的任何内容,但不能离开

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM