使用回归而不是分类进行多类分类

Posted

技术标签:

【中文标题】使用回归而不是分类进行多类分类【英文标题】:Using regression instead of classification for multi class classification 【发布时间】:2020-02-05 18:46:49 【问题描述】:

我有一个多类分类问题。我正在使用随机森林分类器。我的老板问是否可以通过回归来查看我们的问题。我理解,对于分类任务,使用分类器当然更好,但是是否可以实现回归模型。

我的数据是这样的:

我有一个由软件需求组成的数据集,它们被评为 1、2、3、4 或 5。

然后我正在创建一个特征矩阵,用于训练模型以对班级进行预测,其中包含 10 个特征,例如:num_words、num_sentences、num_syllables、weak_words、flesh_idx 等

我的模型运行良好,准确率为 93%。

有没有办法使用回归来查看这个问题?这样模型会做出预测,例如 1.5,其中预测不属于第 1 类或第 2 类,而是在中间的某个地方?或者可能是 2.2、3.3 等而不是 1、2、3、4 或 5?

我想原因只是为了看看我们是否可以连续看到软件需求分数。

【问题讨论】:

【参考方案1】:

在分类问题中使用回归的方法是使用逻辑回归。您可以单独使用它来对每个分类进行 1 与非 1、2 与非 2 等分类(不要这样做),或者使用 Softmax,简单地说,对每个类加权并返回每个给定类的概率,然后您只需选择具有max 概率的那个,这将是您的预测类别。在处理多类分类时,有很多神经网络使用softmax。 这是来自scikit-learn's 文档的一篇很棒的文章: https://scikit-learn.org/stable/modules/neural_networks_supervised.html

【讨论】:

谢谢,是否有可能得到一个输出,例如:给定的软件要求,结果是 4.3 的评级,而不是使用分类器时的 4 评级?我认为我所想的是不可能的。我将阅读有关 softmax 的信息,也许会更清楚 不,你需要回归,而不是逻辑回归。如果你有 5 个类,softmax 的输出将是一个由每个类的概率组成的数组:[0.02,0.01,0.002,0.10,0.868]。因此,该输入数据的预测将是第 5 类,概率为 86.8%,次优,第 4 类,概率为 10%,依此类推...【参考方案2】:

使用 mxnet 或 tensorflow 尝试 Softmax 回归(或多项逻辑回归)

【讨论】:

以上是关于使用回归而不是分类进行多类分类的主要内容,如果未能解决你的问题,请参考以下文章

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

在sklearn python中处理逻辑回归分类器中的极端不平衡多类

100 个离散值的多类分类的线性回归

用于分类/多类分类的梯度提升树的弱学习器

在有监督的多类分类中,为啥使用宏 F1 分数而不是平衡精度?

机器学习之——多类分类问题