【问题标题】:SVM Classification - minimum number of input sets for each classSVM 分类 - 每个类的最小输入集数
【发布时间】:2011-01-18 01:11:49
【问题描述】:

我正在尝试构建一个应用程序来检测来自网页的广告图像。一旦我检测到这些,我将不允许它们显示在客户端。

根据我在 this Stackoverflow question 上获得的帮助,我认为 SVM 是实现目标的最佳方法。

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

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

那么我可以在这里做什么?我应该给 SVM 多少个输入集来训练,每个类有多少个?

谢谢。干杯。 (基本上提出了一个新问题,因为上下文与我之前的问题不同。Optimization of Neural Network input data


感谢您的回复。 我想检查我是否正确地导出了广告和非广告类的 C 值。 请给我反馈。

或者您可以查看文档版本here

您可以在此处查看 y1 eqaul 到 y2 的图表

这里 y1 不等于 y2

【问题讨论】:

    标签: machine-learning classification svm training-data


    【解决方案1】:

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

    另一种解决方案是使用 加权 SVM,以便广告图像的边距误差比非广告图像的边距误差权重更大,对于 libSVM 包,这是通过 @987654321 完成的@ 旗帜。根据您对数据的描述,您可以尝试将广告图片的权重设为非广告图片的 7 倍左右。

    【讨论】:

    • 您能解释一下为什么要平衡训练数据吗?我认为支持向量机选择与训练模式距离最大的决策面。为什么这个决策表面背后有多少其他训练模式很重要?过采样模式有什么帮助? (我一直认为加权 SVM 旨在为错误分类到不同类别和/或先验概率的不同成本建模 - 但 OP 没有提及成本或先验概率)
    • @nikie - 硬 SVM 选择具有最大训练模式分离度的决策面。但是,一旦您允许边距和分类错误(即,当您引入 C 时),SVM 就会在最大化边距大小与允许某些点在边距内甚至错误分类之间进行权衡。对于不平衡的数据,来自较小类别的大部分数据点最终可能会处于边缘或更糟的状态。增加它们的权重或平衡数据集基本上解决了这个问题。
    • @dmcer:感谢您的解释。我试图将非广告样本降低到 600 左右。但准确性非常差。当我使用 400 广告和 2400 非广告进行训练时。是的,训练时间很长,但后来我在分类非广告方面得到了大约 95% 的准确率,广告分类准确率下降到非常低的水平。我猜这种效果是由于非广告集在广告集上占主导地位。那么这个加权 SVM 在这种情况下会起作用吗?我在这里做错了什么,因为当我采集 2800 个训练样本时,非广告的准确性非常好?
    • @amol:加权 SVM 可能是接下来尝试的好东西。有了它,您将模拟对广告图像数量进行上采样,但实际上不会增加​​训练集的大小。您还在使用自己的 SVM 实现吗?如果是这样,您可能希望暂时切换到 libSVM 或 SVM light 之类的东西,至少在您弄清楚哪种 SVM 配置适用于您的数据之前。这样,您就可以解决配置问题和分类器实现错误。
    • 感谢您的建议。我ll try to fix up the configuration with LibSVM. Though eventually Ill 必须自己实现一切。但是我可以t try LibSVM right now. I got exam next week and Ill 在那之后重新加入工作。希望那时我能得到你的帮助。干杯。
    【解决方案2】:

    所需的训练集大小取决于特征空间的稀疏程度。据我所知,您不是在讨论您选择使用哪些图像功能。在训练之前,您需要将每张图像转换为描述图像的数字(特征)向量,希望能捕捉到您关心的方面。

    哦,除非您要为运动重新实现 SVM,否则我建议您只使用 libsvm

    【讨论】:

    • 我只对 nt understand what you meant by sparseness of the feature space and how exactly will it decide size of my training set. Let me make myself little clear here. 1. Yes, Im 进行了文本分析,以将图像预测为广告/非广告图像。 2.我m forced not to use these libraries on the internet and implement SVM on our own. I have already coded most of SVM and can test accuracy of its 输出。谢谢。 ——
    • 让我试着说得更清楚些。您如何从图像中获取为该图像输入到 SVM 的数字向量?你确定不只是给它图像中每个像素的红色、绿色和蓝色吗?
    • m doing text analysis to get different attributes of that image. Using that as training set ( which is already there in the UCI repository ) Im 训练我的支持向量机。现在的问题是广告训练集计数只有 400,而非广告训练集计数约为 2800。那么现在我该怎么办?我应该给 SVM 多少个输入集来训练,每个类有多少个输入集?谢谢。
    猜你喜欢
    • 2014-12-04
    • 2011-09-17
    • 1970-01-01
    • 2015-12-09
    • 2020-06-12
    • 2020-04-07
    • 2017-10-11
    • 2014-06-03
    • 2017-04-29
    相关资源
    最近更新 更多