machine-learning - 一对多 SVM 引入了类别不平衡

标签 machine-learning computer-vision svm libsvm

对于一对多方法,它取决于等于类数 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 对所有人。为了避免这个问题,您可以使用“类(class)权重”方案,该方案可确保较小的类(class)获得更多学习者的关注(对代表较差的类(class)进行错误分类的成本更高)。

关于machine-learning - 一对多 SVM 引入了类别不平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20050105/

相关文章:

python - 我应该如何使用 TF-IDF 对我收集的数据进行文本分类?

python-3.x - Pytorch DataLoader 多数据源

java - 识别位图中的 Logo - android

opencv - 如何从像素坐标计算归一化图像坐标?

c++ - openCV 中的 SVM 抛出 "cv::Exception at memory location"

python - 来自 WiFi 数据的位置

database - 如何有效地存储大量的 n 克?

android - 启用 LED 闪光灯后相机图像曝光过度

algorithm - 帮助我理解二进制 SVM 中的线性可分性

python - 关于Python特征选择的问题(空值)