带有分类输出的Logistic回归sklearn。

问题描述 投票:0回答:1

我必须在sklearn中用逻辑回归训练一个模型。我到处看到结果必须是二进制的,但我的标签是好,坏或正常。我有12个特征,我不知道如何处理三个Labels?我非常感谢每一个答案

machine-learning scikit-learn regression classification logistic-regression
1个回答
0
投票

你可以使用 多项式Logistic回归.在python中,你可以修改你的Logistic回归代码为。

LogisticRegression(multi_class='multinomial').fit(X_train,y_train)

你可以看到 Logistic回归 在Scikit-Learn的文档中了解更多细节。


0
投票

这就是所谓的onevs-all分类或多类分类。

sklearn.linear_model.LogisticRegression。:

在多类情况下,如果'multi_class'选项设置为'ovr',则训练算法使用onevs-rest(OvR)方案,如果'multi_class'选项设置为'multinomial',则使用交叉熵损失。(目前'multinomial'选项只被'lbfgs'、'sag'、'saga'和'newton-cg'求解器支持。)

代码示例:

# Authors: Tom Dupre la Tour <[email protected]>
# License: BSD 3 clause

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.linear_model import LogisticRegression

# make 3-class dataset for classification
centers = [[-5, 0], [0, 1.5], [5, -1]]
X, y = make_blobs(n_samples=1000, centers=centers, random_state=40)
transformation = [[0.4, 0.2], [-0.4, 1.2]]
X = np.dot(X, transformation)

for multi_class in ('multinomial', 'ovr'):
    clf = LogisticRegression(solver='sag', max_iter=100, random_state=42,
                             multi_class=multi_class).fit(X, y)

    # print the training scores
    print("training score : %.3f (%s)" % (clf.score(X, y), multi_class))

检查完整的代码示例。绘制多项式和 "单对多 "回归图

© www.soinside.com 2019 - 2024. All rights reserved.