当前位置:  开发笔记 > 人工智能 > 正文

SVM分类 - 每个类的最小输入集数

如何解决《SVM分类-每个类的最小输入集数》经验,为你挑选了1个好方法。

我正在尝试构建一个应用程序来检测来自网页的广告图像.一旦我发现了那些,我就不会允许那些在客户端显示.

从我对Stackoverflow问题的帮助,我认为SVM是达到我目标的最佳方法.

所以,我自己编写了SVM和SMO.我从UCI数据存储库获得的数据集有3280个实例(链接到数据集),其中大约400个来自表示广告图像的类,其余表示非广告图像.

现在我正在使用前2800个输入集并训练SVM.但在查看准确率后,我意识到这2800个输入集中的大多数来自非广告图像类.因此,我对该课程的准确性非常高.

那我该怎么办?关于我要给SVM培训多少输入集,以及每个类有多少输入集?

谢谢.干杯.(基本上提出了一个新问题,因为上下文与我之前的问题不同.优化神经网络输入数据)


谢谢回复.我想检查一下我是否正确得出广告和非广告类的C值.请给我反馈.

在此输入图像描述

或者你可以在这里看到doc版本.

你可以在这里看到y1 eqaul到y2的图形 在此输入图像描述

并且y1在这里不等于y2 在此输入图像描述



1> dmcer..:

有两种方法可以解决这个问题.一种是平衡训练数据,因此它包括相同数量的广告和非广告图像.这可以通过对400个广告图像进行过采样或对数千个非广告图像进行欠采样来完成.由于训练时间会随着使用的数据点数量的增加而急剧增加,因此您应该首先尝试对非广告图像进行欠采样,并创建一个包含400个广告图像和400个随机选择的非广告的训练集.

另一种解决方案是使用加权SVM,以便广告图像的边距误差比非广告的边际误差更重,对于包libSVM,这是通过-wi标志完成的.根据您对数据的描述,您可以尝试权衡广告图片的重量比非广告重7倍.


@nikie - 硬SVM选择具有最大训练模式分离的决策表面.但是,一旦您允许保证金和分类错误(即,当您引入C)时,SVM会权衡利差最大化,允许某些点位于边际或甚至错误分类.对于不平衡的数据,来自较小类的大部分数据点可能最终处于边缘或更糟.加权它们或平衡数据集基本上解决了这个问题.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有