如何使用 bagging 集成 SVM 和 CNN 分类器?

Posted

技术标签:

【中文标题】如何使用 bagging 集成 SVM 和 CNN 分类器?【英文标题】:How to ensemble SVM and CNN classifier using bagging? 【发布时间】:2019-08-30 05:59:36 【问题描述】:

我正在使用 X 射线图像对结核病进行分类。当我从 X 射线图像中提取有用的特征到 csv 文件中并使用它运行 SVM 并获得大约 60% 的准确度时。同时,直接在图像数据集上训练的 My CNN 模型的准确率达到了约 80%。我可以在网上找到参考,当两个模型机器学习模型或深度学习模型,而不是另一个模型时,可以使用集成方法。例如,我可以将 CNN 与其他类型的 CNN 集成。

【问题讨论】:

顺便说一句,深度学习模型机器学习模型... 是的@desertnaut,只是想澄清这个问题。 【参考方案1】:

假设您的问题是“如何使用 bagging 集成 SVM 和 CNN 分类器”,这并不难。您使用整个训练集的子集训练每个模型 SVM 和 CNN(您可以使用每个模型的倍数)。在每个模型都经过训练后,您会提供测试数据,并且对于每个数据,所有模型都会进行分类。它会像投票一样工作。 SVM 投票为“真”,CNN 也投票“真”多数为“真”,因此您的集成模型会将其分类为“真”。

所以如果是其他类型的模型也没关系。

【讨论】:

假设 SVM 投票“真”而 CNN 投票“假”,我应该使用哪一个? @QiYang 一个选项,你可以给他们权重。也许根据每个模型的准确率,如果 SVM 有 60%,CNN 有 80%,那么 0.6 为真,0.8 为假,集成模型的答案为假。【参考方案2】:

Bootstrap 聚合或装袋是一种集成方法,您可以在训练集的不同样本上训练不同的模型。所以,Bagging 在这里不适用。

在集成 CNN 和 SVM 模型的情况下,一种简单的方法是对预测进行平均。还有其他技术,例如称重(准确模型的投票更多)等。请参考此链接:

https://mlwave.com/kaggle-ensembling-guide/

【讨论】:

以上是关于如何使用 bagging 集成 SVM 和 CNN 分类器?的主要内容,如果未能解决你的问题,请参考以下文章

cvpr2017:branchout——基于CNN的在线集成跟踪

字符识别--模型集成

字符识别--模型集成

在 CNN 提取特征之上使用 SVM - 如何进行多类分类?

如何存储 CNN 提取的特征来训练 SVM 分类器

理解集成学习及其在 Matlab 中的实现