一个与所有 SVM 引入了类不平衡



对于一对一方法,它取决于等于类 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。这种不平衡可以接受吗?我的意思是,一个人对一个人最好避免不平衡,还是取决于分类问题?这种情况可以接受吗?如何知道这是否给我带来了问题?

是的,一般来说,就平衡而言,一对一是更好的解决方案,但它需要更高的计算和内存成本(因为您需要 n^2 个分类器)。因此,这是一种经常训练 1 与所有人的做法。为了避免这个问题,你可以使用"类权重"方案,它确保较小的班级获得更多学习者的关注(错误分类较差的班级的成本更高)。

这种不平衡问题的直观思考是:少数样本在训练后可能有遗漏TP的风险。但是,一对多方法包括一个总和池过程,该过程将在所有这些"缺少 TP"的分类器中选择最大分类器。所以一个小的不平衡不会造成大问题。

最新更新