对于我的分类问题,我试图将对象分类为好或坏。我已经能够创建一个很好的第一个分类步骤,使用 SVM 将数据分成两组。
在使用训练/保持集(75% 训练,25% 保持)调整 SVM 的参数后,我从保持集获得以下结果:第 1 组(分类为坏的模型)由 99% 的坏对象组成,组2(分类为好的模型)由大约 45% 的好对象和 55% 的坏对象组成。我使用 k-fold CV (k=5) 验证了模型的性能,发现该模型是稳定的,并且在误分类率方面表现相对一致。
现在,我想通过在我的第 2 组(可能是好/可能是坏的对象)上训练另一个模型(可能是也可能不是 SVM)来让这些对象通过另一轮分类,以尝试正确分类第二组,因为我已经摆脱了明显坏的对象。
我有几个想法,但不确定如何进行。
(1) 我的第一个想法是使用来自 Holdout 集中分类对象的数据来训练另一个模型。我能够根据保留集的结果训练另一个分类模型。问题是我使用的原始数据不到 25%,而且我担心在我的数据的一个非常小的子集上过度拟合。
(2) 我的第二个想法是收集 5-fold CV 的结果来创建另一个数据集。我的推理是,由于数据被划分为 5 个部分,并且每个部分从其他 4 个部分训练的模型中分为两组,所以我认为我可以聚合 5 个部分的预测结果,得到一个分类版本我的原始数据集并从那里继续。
唯一的问题是,我有一种沉沦的感觉,两种方法都不好。CV 能否阐明一些可能的后续步骤?
编辑
抱歉,我的问题措辞不当。让我试着澄清我想要做什么。可以把它想象成一棵树...
- 让我将原始数据集称为节点 0。
- 我使用分类方法 1 将节点 0 拆分为节点 1 和节点 2。
- 节点 1 的误分类率低(主要由坏对象组成)
- 节点 2 的错误分类率很高(大致均匀地混合了好对象和坏对象)
- 我现在想使用分类方法 2 将节点 2 拆分为节点 3 和节点 4
“分类方法”可以是任何东西(LDA、QDA、SVM、CART、随机森林等)。所以我想我在这里想要实现的是一个“分类”树(不是CART),其中每个节点都经过不同的分类方法以获得整体高的“类纯度”。基本上,我想混合使用不同的分类方法来获得合理的结果。
我的问题在于第一次拆分后丢失了训练数据。在我通过“分类方法 1”运行它后,我用完了可用数据,在我的例子中是 SVM。