[已答复] libsvm二分类概率输出b参数问题

[复制链接]
楠晓木溪 发表于 2017-1-4 11:14:33
本帖最后由 楠晓木溪 于 2017-1-4 11:33 编辑

我现在用svm做一个分类,样本集包括9个属性;1个标签,二分类问题0/1,现在想实现的是样本测试集分类的概率;查看资料都是svmpredict函数中b参数;'-b 1';'-b 0'分别代表的是什么?有的说的是分类与回归,有的说是是否概率输出;我在函数里面加上这个参数‘-b 1’,出现Model does not support probabiliy estimates;加上‘-b 0’;结果还有负数

实例:
     [predict_label_2,accuracy_2,mdex] = svmpredict(test_label,Test_matrix,model,'-b 0');在函数中添加‘-b 0’,应该返回概率至mdex,mdex结果是n*1维,里面还有负数;想知道这一列数值代表的是什么?比如某一样本分类结果为1,对应mdex里面的这一行的值就是分类为1的概率吗?但是怎么还出现负数呢



求指教!

函数中加上参数‘-b 0’

函数中加上参数‘-b 0’

结果是nX1维

结果是nX1维

13 条回复


楠晓木溪 发表于 2017-1-4 14:57:55
本帖最后由 楠晓木溪 于 2017-1-4 14:59 编辑

自己又琢磨了一下,实验了一下,发现是自己的问题。训练模型是也需要加上‘-b 1’;在预测时也需要加上;如下:得到的结果是n*2维,并且每行相加都为1,分别表示为0 1时的概率,对比了一下预测分类结果,应该是哪个概率高于0.5,就判断的是属于哪类吧;但是具体那两列哪个对应1的概率哪个对应0的概率还不清楚是怎么判断的,现在是看结果对比人为判断一下的。。。。
cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg),' -b 1'];
%%
% 2. 创建/训练SVM模型
model = svmtrain(train_label,Train_matrix,cmd);

%% V. SVM仿真测试
[predict_label_2,accuracy_2,mdex] = svmpredict(test_label,Test_matrix,model,'-b 1');
C:\Users\Administrator\Desktop\3.png

真实值-预测值-概率

真实值-预测值-概率

楠晓木溪 发表于 2017-1-4 16:08:32
又摸索了一下。。。。。。。。二分类输出的概率中,上面程序中mdex输出为n*2维的结果,两列分别表示分类为0/1的概率;那么到底那列表示的是0的概率,哪列表示的是1的概率呢;跟svmtrain训练的模型中model.Label这个变量中保存的类别的顺序有关,按照Label中保存的类别顺序表示,我的model.Label中是2*1维,分别是1,0;那么mdex这两列就分别是1,0的概率。


这个问题应该终于完结了吧。。。。

顽石族 发表于 2017-1-7 10:29:28
-b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0) 是否使能概率估计


楠晓木溪 发表于 2017-1-9 17:15:30
顽石族 发表于 2017-1-7 10:29
-b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (def ...

最开始查资料就看到这样的说明了,但还是不太理解,做一个实际的例子出来就懂啦,谢谢啦

yeungtt 发表于 2017-2-15 19:34:59
楠晓木溪 发表于 2017-1-4 14:57
自己又琢磨了一下,实验了一下,发现是自己的问题。训练模型是也需要加上‘-b 1’;在预测时也需要加上;如 ...

请问楼主,你的Matlab版本是什么

楠晓木溪 发表于 2017-2-20 16:18:57
yeungtt 发表于 2017-2-15 19:34
请问楼主,你的Matlab版本是什么

matlab2014a的

yeungtt 发表于 2017-2-20 17:20:58

libsvm工具箱的版本是什么

楠晓木溪 发表于 2017-3-6 16:12:10
yeungtt 发表于 2017-2-20 17:20
libsvm工具箱的版本是什么

不好意思,最近没看;是3.1版本的;

白水冰泉 发表于 2017-8-24 20:29:20
支持。学习了。最近正在学习matlab中用libsvm分类输出概率的知识:handshake

hxy281012 发表于 2019-1-10 17:05:49
楼主,你的数据导入是需要什么格式啊,能发一个完整的计算过程吗

wsm1620119867 发表于 2019-3-3 10:38:21
楠晓木溪 发表于 2017-1-4 14:57
自己又琢磨了一下,实验了一下,发现是自己的问题。训练模型是也需要加上‘-b 1’;在预测时也需要加上;如 ...

你好!我的训练模型和预测模型都加上‘-b 1 ’, 但是运行结果仍然出现出现Model does not support probabiliy estimates。 不知道是什么原因呢? 而且无法画出ROC 曲线,去掉-b 是可以画出曲线的,但是是错的

scc401 发表于 2020-12-14 17:46:42
本帖最后由 scc401 于 2020-12-14 17:49 编辑

你好!我的训练模型和预测都加上‘-b 1 ’, 但是运行结果返回为空,提示Model does not support probabiliy estimates。 不知道是什么原因?我的是win10+matlab2019a+libsiv3.24.预测不加‘-b 1 ’返回不为空。

黎重程 发表于 2021-11-25 19:38:16
楠晓木溪 发表于 2017-1-4 14:57
自己又琢磨了一下,实验了一下,发现是自己的问题。训练模型是也需要加上‘-b 1’;在预测时也需要加上;如 ...

老哥问一下,如果是三分类的怎么实现概率输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表