对于一对一的方法,它取决于等于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个)。这意味着在上面的代码中,一个类将与数据集的其余部分(n-1)* 5000相比为5000。这种不平衡是否可以接受?我的意思是一对一会更好地避免失衡或是否依赖于分类问题?这种情况是否可以接受?如何知道这是否会导致我出现问题?
答案 0 :(得分:1)
是的,一般而言,在平衡方面,一对一是更好的解决方案,但它需要更高的计算和内存成本(因为您需要n ^ 2个分类器)。因此,这通常是训练1对所有人的练习。为了避免这个问题,你可以使用“类权重”方案,这可以确保较小的类获得更多学习者的注意力(错误地分类表示较差的类的成本更高)。
答案 1 :(得分:0)
这种不平衡问题的直观思考是:少数样本在训练后可能有丢失TP的风险。然而,一对一方法包括一个总和池程序,在所有那些“TP缺失”分类器中选择最大分类器。因此,轻微的不平衡不会造成巨大的问题。