使用回归而不是分类进行多类分类
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 回归(或多项逻辑回归)
【讨论】:
以上是关于使用回归而不是分类进行多类分类的主要内容,如果未能解决你的问题,请参考以下文章
在sklearn python中处理逻辑回归分类器中的极端不平衡多类