在 SVM 和 MLP 分类器之间进行选择

Posted

技术标签:

【中文标题】在 SVM 和 MLP 分类器之间进行选择【英文标题】:Choosing between the SVM and the MLP classifier 【发布时间】:2014-10-31 12:37:41 【问题描述】:

我必须训练一个能够识别 6 种可能的输入样本类别的分类器。我还有一个成本矩阵来估计分类器在考虑和不考虑拒绝选项的情况下的性能。

到目前为止,使用交叉验证leave-one-out),我将数据集拆分为训练集和验证集,因此我可以测量分类器的表现。我在准确性方面达到了这些结果:

多层感知器:57.69% 没有拒绝选项,48.26% 有拒绝选项 支持向量机:61.99% 没有拒绝选项,35.09% 有拒绝选项

根据成本(这些是使用最小风险分类规则获得的估计值):

MLP:2,0028 没有拒绝选项,1,4965 有拒绝选项 SVM:1,6089 没有拒绝选项,0,8502 有拒绝选项

所以我已经到了不知道哪个分类器更好的地步。

当然,SVM 的成本低得离谱,但是当您考虑拒绝选项时,您会突然发现它的准确性非常差(比 MLP 低 -13%)。

准确度而言,我会说 MLP 比 SVM 更好,因为它的平均准确度(考虑有/没有拒绝选项): 52.97%(MLP)与 48.54%(SVM)。

但 SVM 在平均成本方面更好:1,74965 (MLP) vs 1,22955 (SVM)。

是否有任何指导方针来促进这一决定?

编辑(根据要求提供更多信息):数据集有约 700 个样本和约 1250 个特征。然而,通过特征选择,我将特征减少到 81 个。

测试集(我没有)将有大约 700 个样本。

【问题讨论】:

没有任何通用规则。 SVM 可能比简单的 MLP 更好,但这完全取决于 MLP 的架构、训练算法和您的数据集。 【参考方案1】:

我不知道您使用的 MLP 实现到底是什么。一般来说,对于非常大的输入,SVM 肯定会有更好的性能,而 MLP 可能没用。根据实现、神经元数量等,MLP 也可能会被过度训练,从而导致准确性降低。

所以你必须先确定输入的典型大小。

【讨论】:

数据集有约 700 个样本和约 1250 个特征。使用交叉验证(留一法),我将数据集拆分为训练集和验证集。然而,通过特征选择,我将特征减少到 81 个。测试集(我没有)有大约 700 个样本。

以上是关于在 SVM 和 MLP 分类器之间进行选择的主要内容,如果未能解决你的问题,请参考以下文章

Sklearn MLP 特征选择

基于Halcon的MLP(多层感知神经网络)分类器分类操作实例

使用多层感知器(MLP)对图像及其性能进行分类

分类和回归之间的区别,使用 SVM

SVM、MLP 等可以对多元时间序列问题进行分类吗?

如何在斯坦福分类器中使用朴素贝叶斯分类器、SVM 和最大熵