【发布时间】:2014-09-09 14:51:09
【问题描述】:
我正在为 Matlab 使用 LIBSVM 工具箱。我的问题是标签为 1(真)和 0(假)的二元分类问题。当我用这个功能训练我的系统时:
svmstruct = svmtrain(TrainTargets, TrainInputs,['-t 2 ' '-g ' SIGMA ' -c ' P ' -q' ' -b 1']);
并使用此功能测试我的测试准确性:
[TestOutputs, ~, ~] = svmpredict(TestTargets, TestInputs, svmstruct,'-b 1 -q');
现在我想使用设计的 SVM 模型来输出样本数据。所以我使用了这个功能:
[OUT, ~, Prob_Out] = svmpredict(zeros(size(Outsample_DATA,1),1), Outsample_DATA, svmstruct,'-q -b 1');
对于我的第一个训练模型(我用不同的参数训练了 SVM 模型)我有这个输出(输出样本数据集在两种情况下都是相同的):[Prob_Out OUT]
0.8807 0.1193 0
0.8717 0.1283 0
0.0860 0.9140 1.0000
0.7846 0.2154 0
0.7685 0.2315 0
0.7916 0.2084 0
0.0326 0.9674 1.0000
0.7315 0.2685 0
0.3550 0.6450 1.0000
第二个我有这个:
0.4240 0.5760 0
0.4090 0.5910 0
0.7601 0.2399 1.0000
0.5000 0.5000 1.0000
0.4646 0.5354 0
0.4589 0.5411 0
假设我想找到具有这些概率的 1 类。在第一组数据中,当第 2 列大于第 1 列时,该样本属于第 1 类,但在第二组中,当第 1 列大于第 2 列时,该样本属于第 1 类。
这两个输出样本数据的结构是相同的。有什么问题?
谢谢。
附言。 当我在这些模型中训练模型后检查 SVMstruct 参数时,标签是 [0;1] 而另一个标签是 [1;0] !
【问题讨论】:
标签: matlab svm probability libsvm