2014-02-25 73 views
0

我正在用支持向量机(SVM)做一些分类任务。 我使用libSVM(与Matlab支持)来预测概率估计矩阵。但是,libSVM显示消息: 模型不支持probabiliy估计 以下是我的示例代码; (train_label包含标签训练数据和test_label包含标签的测试数据)支持向量机模型不支持概率估计?

model = svmtrain(train_label, train_data, '-t 2 -g .01 -c 0.7 -b 1); 
    [y,accuracy,prob_estimates]=svmpredict(test_label,test_data,model,'-b 1'); 

有人能告诉我,如果有什么问题我这样做的方式吗?任何帮助/建议将不胜感激。

回答

0

不知道有这个Matlab实现,但通常你必须设置这个option

-b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)

+0

谢谢你的回复。但我已经为训练和预测设置了选项'-b 1'。 – user35919

+0

@ user35919对不起,忽略了。您是否使用'-t'选项尝试了不同的SVM类型? (我只是猜测,不知道这是否会有所帮助)。 – qqilihq

+0

是的,我确实尝试了'-t 1'和'-t 2'。没有区别。 – user35919

0

我现在用同样的方式LIBSVM没有任何问题。

在您的代码只有“在下面的行

model = svmtrain(train_label, train_data, '-t 2 -g .01 -c 0.7 -b 1); 

失踪应该

model = svmtrain(train_label, train_data, '-t 2 -g .01 -c 0.7 -b 1'); 
+0

谢谢@Zahid Mahmood。 – user35919

0

我有同样的问题,模型没有得到它ProbAProbB。 之前,它是这样的,并给予错误:

linear_model = svmtrain(trainClass, trainData, ['-t 0', cmd]); 

然后,我把它改成这样,错误dissappared :) - 删除CMD,并把精确值

linear_model = svmtrain(trainClass, trainData, ['-t 0 -c 1 -g 0.125 -b 1']); 

如果仍然提示错误尝试改变cg参数。

希望这会有所帮助。

0

你可能只是训练使用默认参数模型。 尝试在训练和测试程序时使用'-b 1'。

+1

这不提供问题的答案。一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你将可以在任何帖子上[评论](http://stackoverflow.com/help/privileges/comment)。还要检查这个[我能做些什么,而不是(https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an-i-do-instead )。 – thewaywewere