使用 scikit learn 训练逻辑回归进行多 class class 化
Training logistic regression using scikit learn for multi-class classification
根据 scikit multiclass classification
通过设置逻辑回归可以用于多classclass化
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" 工作正常,但它适合每个 classifier 和我的二进制模型也想尝试多项式特征。
来自doc:
Currently the ‘multinomial’ option is supported only by the ‘lbfgs’ and ‘newton-cg’ solvers.
因此您需要将 solver
显式设置为 'newton-cg
' 或 'lbfgs'
,因为默认求解器是 'liblinear'
.
您似乎没有提供解算器,默认情况下解算器设置为不支持多 class 的“liblinear”。
根据 sklearn 版本 0.20.1,'newton-cg'、'lbfgs'、'sag'、'saga' 而不是 'liblinear' 支持 multiclass,因此请按照以下内容更改 LogisticRegression 的实例创建代码
logReg = LogisticRegression(multi_class='multinomial', solver='newton-cg')
求解器必须是“newton-cg”、“lbfgs”、“sag”、“saga”中的任何一个,但不能保留
根据 scikit multiclass classification 通过设置逻辑回归可以用于多classclass化 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" 工作正常,但它适合每个 classifier 和我的二进制模型也想尝试多项式特征。
来自doc:
Currently the ‘multinomial’ option is supported only by the ‘lbfgs’ and ‘newton-cg’ solvers.
因此您需要将 solver
显式设置为 'newton-cg
' 或 'lbfgs'
,因为默认求解器是 'liblinear'
.
您似乎没有提供解算器,默认情况下解算器设置为不支持多 class 的“liblinear”。 根据 sklearn 版本 0.20.1,'newton-cg'、'lbfgs'、'sag'、'saga' 而不是 'liblinear' 支持 multiclass,因此请按照以下内容更改 LogisticRegression 的实例创建代码
logReg = LogisticRegression(multi_class='multinomial', solver='newton-cg')
求解器必须是“newton-cg”、“lbfgs”、“sag”、“saga”中的任何一个,但不能保留