【发布时间】:2012-02-17 06:26:56
【问题描述】:
我有一个多类 svm 分类(6 类)。我想使用 LIBSVM 对其进行分类。以下是我尝试过的,我对它们有一些疑问。
方法一(一对一):
model = svmtrain(TrainLabel, TrainVec, '-c 1 -g 0.00154 -b 0.9');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
关于这个方法的两个问题:1)我需要做的就是解决多类问题 2) '-b n' 中的 n 应该是什么值。我不确定
方法2(一VS休息):
u=unique(TrainLabel);
N=length(u);
if(N>2)
itr=1;
classes=0;
while((classes~=1)&&(itr<=length(u)))
c1=(TrainLabel==u(itr));
newClass=double(c1);
tst = double((TestLabel == itr));
model = svmtrain(newClass, TrainVec, '-c 1 -g 0.00154');
[predict_label, accuracy, dec_values] = svmpredict(tst, TestVec, model);
itr=itr+1;
end
itr=itr-1;
end
对于第二种方法,我如何附加分类分数。我无法投票。
除此之外,这是我尝试过的两种方法。哪种方法更好?
想听听一些cmets。如果我错了,请纠正我。
【问题讨论】:
-
我很好奇你是否在非常不平衡的集合(一些“一”和许多“休息”)的“一与休息”中取得了良好的结果,并且当示例之间存在很多差异时在“休息”中?
标签: machine-learning computer-vision classification svm libsvm