【问题标题】:LibSVM Cost Weights for Unbalanced Data Doesn't Work不平衡数据的 LibSVM 成本权重不起作用
【发布时间】:2012-12-03 10:01:38
【问题描述】:

我有一个数据集,负标记值的数量是正标记值数量的 163 倍,所以我有一个不平衡的数据集。我试过了:

model = svmtrain(trainLabels, trainFeatures, '-h 0 -b 1 -s 0 -c 10 -w1 163 -w-1 1');
[predicted_label, accuracy, prob_estimates] = svmpredict(testLabels, testFeatures, model, '-b 1');

准确率接近 99%,我搜索并发现:http://agbs.kyb.tuebingen.mpg.de/km/bb/showthread.php?tid=376&page=1 在帖子 #7 上写着

您是否尝试过以较小的比例加权(即:

我把它改成了:

model = svmtrain(trainLabels, trainFeatures, '-h 0 -b 1 -s 0 -c 10 -w1 0.5 -w-1 0.003');
[predicted_label, accuracy, prob_estimates] = svmpredict(testLabels, testFeatures, model, '-b 1');

由于数据不平衡,我每次的准确率仍然很高。有什么想法吗?

PS:我正在尝试实施 KDD Cup 2008 的第一个挑战 - 乳腺癌。 我想按降序排列候选人。

【问题讨论】:

    标签: matlab machine-learning svm libsvm


    【解决方案1】:

    这可能是由于你的负面和正面例子难以区分的原因。 我将通过对多数类进行下采样并使用所有少数类示例来准备不同的数据集,然后在所有数据集上学习 svm。然后使用投票。这对我有用

    【讨论】:

      猜你喜欢
      • 2012-07-09
      • 2013-10-06
      • 2013-06-11
      • 2016-02-08
      • 2017-05-26
      • 2012-07-30
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多