堆叠模型性能?

数据挖掘 分类 支持向量机 可能性 集成建模
2022-03-01 00:11:52

我目前正在使用一个看起来很容易分离的数据集,并且 SVM 的准确度为 99%(NN-98%、RF-98%、DT-96-97%,并且我检查了泄漏和过度拟合)。作为我项目的一部分,我还在学习如何实现一个混合模型,但它的准确率也是 99%(1 条记录错误分类)。它似乎错误地将同一记录分类为 SVM,并且似乎没有其他算法可以使该记录正确。Probability wise-RF 和 Logistic Regression 给出的概率为 0.5-0.7,但所有其他模型给出错误预测的概率为 0.9-1。我在想我现在应该怎么做。我是否可以使用某些技术将堆叠模型中的概率降低到 0.5 以下 t 分类它目前的方式?我正在使用 StackingCVClassifier 来实现,这是一个二进制分类项目。

我目前使用 SVM、LR、RF 作为基本模型,NB 作为元模型。

我的另一个问题是,如果准确性与 SVM 相同,那么制作混合模型是否有价值?

谢谢!

1个回答

是否可以使用某些技术将堆叠模型中的概率降低到 0.5 以下,以便它不会按照当前的方式分类?

为了更好地处理某些特定实例而尝试使分类器产生偏差通常不是一个好主意,因为它可能会使其在某些(可能很多)其他实例中变得更弱。这样做的方法是在训练集中对实例进行过采样,这将有助于正确预测目标实例,但这是一个糟糕的主意,不要这样做!:)

一般来说,出现一些错误是完全正常的,数据可能包含噪音,甚至有时甚至是注释错误。

我的另一个问题是,如果准确性与 SVM 相同,那么制作混合模型是否有价值?

如果数据真的很容易分类,那么堆叠学习器完全有可能不会提高性能:如果单个模型的性能达到了在该数据上可获得的最大值,那么显然没有什么可以改进的。

然而,堆叠的好处也有可能在这个特定的测试中不可见:在这个假设中,元模型通常确实比单个学习器更好,但测试集只是不包含任何可以使用的实例见过。

检查这一点的一种方法是减少训练集的大小:通过使分类器更难,个体学习者的弱点可能会出现。