来自不同分类器的投票组合结果的准确性很差

数据挖掘 机器学习 分类 逻辑回归 随机森林
2021-10-08 18:28:14

我使用了以下分类器及其准确性:

  1. 随机森林 - 85 %
  2. 支持向量机 - 78 %
  3. Adaboost - 82%
  4. 逻辑回归 - 80%

当我使用上述分类器的投票进行最终分类时,我得到的准确率低于单独使用随机森林的情况。

这怎么可能?所有分类器在单独使用时都提供或多或少相同的精度,那么随机森林如何优于它们的组合结果?

2个回答

您正在考虑的方法类似于多类 SVM 或one-vs-the-rest方法。

这就是我描述这个问题的方式。例如,支持向量机基本上是一个二分类器。

然而,在实践中,我们经常需要解决涉及 K > 2 个类的问题。因此,已经提出了各种方法来组合多个二类 SVM,以构建多类分类器。

一种常用的方法 (Vapnik, 1998) 是构建 K 个单独的支持向量机,其中第 k 个模型 y_k(x) 使用来自 C_k 类的数据作为正例和来自剩余 K-1 个类的数据作为负例进行训练例子。这被称为一对一的方法,其中:

y(x) = max_k y_k(x)

不幸的是,这种启发式方法存在不同分类器在不同任务上训练的问题,并且不能保证不同分类器的实值量 y_k(x) 将具有适当的尺度

one-vers-the-rest 方法的另一个问题是训练集不平衡。例如,如果我们有 10 个类,每个类都有相同数量的训练数据点,那么各个分类器在包含 90% 负样本和只有 10% 正样本的数据集上进行训练,原始问题的对称性就会丢失。

因此,您的准确性很差

PS:在大多数情况下, 准确度并不是评估分类器模型的好方法。

参考 :

  • Vapnik, V. - 统计学习理论。Wiley-Interscience,纽约。
  • Christopher M. Bishop - 模式识别和机器学习。

简单地通过投票组合一些分类器自然可以给出袋子结果。考虑一个玩具示例,例如拥有一组数据100实例。假设你有3分类器。先来说说70实例所有分类器完美匹配。比下一个10第一个分类器好,其他分类器不好,在下一个10,第二个好,其他不好,最后一个10第三个很好,其他都不好。所有三个模型都继续0.80准确性。投票将导致0.70.

还有一些其他潜在的困难,例如基础学习者的未缩放分数(如果 SVM 没有通过逻辑或其他方式进行缩放,则通常会发生这种情况)。另一个原因是不同学习者提供的模型族。Bagging(或例如在 RF 中使用的引导聚合)之所以起作用,仅仅是因为它们假设模型来自同一个家族(它是同一个树模型,或者从统计上讲,它是一个区域的多数类),并且只有样本是随机抽取的。因此,需要独立且相同分布的子样本的自举在您的情况下不起作用,因为您的模型(可以被认为是样本上的函数)不是相同分布的。

然而,这个问题有一些解决方案,其中之一是堆叠泛化(或简单堆叠)。最简单的方法是与逻辑回归量叠加。这个想法是训练一些基本分类器(你已经拥有),并将它们的结果作为逻辑回归的输入变量。顶级逻辑回归将能够在预测之间找到“适当的平衡”,并且通常您可以获得一些提高的准确性作为其他好处。

如需更多参考资料,请参阅:Wikipedia page on ensemble learning在 Google 上搜索“堆叠泛化”。论文从David Wolpert - Stacked Generalization - 1992的开创性论文开始,该论文开始了有关该主题的所有讨论。