負のラベルの値の数が正のラベルの値の数の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に
小規模な重み付けを試しましたか(例:<1)
そして私はそれを次のように変更しました:
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カップ2008の最初の挑戦である乳がんを実行しようとしています。候補者を降順でランク付けしたいと思います。