【问题标题】:One vs all SVM introduces classses imbalanceOne vs All SVM 引入了类不平衡
【发布时间】:2013-12-01 17:45:43
【问题描述】:

对于一对多的方法,它依赖于等于类数 n 的二元分类器。它假设一个类被标记为 1,而其余类被标记为 0:

model = cell(numLabels,1);
for k=1:numLabels
    model{k} = svmtrain(double(trainLabel==k), trainData, '-c 1 -g 0.2 -b 1');
end

对于大量的类和大量的图像(每类 5000 个)。这意味着在上面的代码中,一个类将是 5000,而数据集的其余部分是 (n-1)*5000。这种不平衡可以接受吗?我的意思是一对一会更好地避免不平衡,还是取决于分类问题?这种情况是否可以接受?如何知道这是否给我带来了问题?

【问题讨论】:

    标签: machine-learning computer-vision svm libsvm


    【解决方案1】:

    对这种不平衡问题的直观思考是:少数样本可能存在训练后丢失TP的风险。然而,一对多的方法包括一个总和池过程,最大的分类器将在所有那些“TP-missing”分类器中选择。因此,轻微的不平衡不会造成大问题。

    【讨论】:

      【解决方案2】:

      是的,总的来说,一对一在平衡方面是更好的解决方案,但它需要更高的计算和内存成本(因为您需要 n^2 个分类器)。因此,这是训练 1 vs all 的常用做法。为避免此问题,您可以使用“类权重”方案,该方案可确保较小的类获得更多学习者的关注(对表现较差的类进行错误分类的代价更高)。

      【讨论】:

      • 我想知道在这种不平衡问题中是否建议使用上采样或下采样方法? “类权重”方案是否等同于对较小群体进行上采样以改变平衡的策略?
      • 建议使用类加权,而不是上采样或下采样。它会产生相同的效果,但在计算上更可行。
      猜你喜欢
      • 2017-04-20
      • 2021-03-09
      • 2021-03-07
      • 2021-03-26
      • 2016-07-17
      • 2020-09-25
      • 2013-10-06
      • 2012-07-28
      • 1970-01-01
      相关资源
      最近更新 更多