现在的位置: 首页 > 综合 > 正文

libsvm中svm_predict_probability函数的用法

2018年02月19日 ⁄ 综合 ⁄ 共 662字 ⁄ 字号 评论关闭

这个函数是libsvm库中比较新的函数,用于对现有nr_class个类做出概率估计(我理解就是属于这个类别的概率是多少,从数学角度是样本与分类面的距离?)

1)进入到svm_predict_probability函数里面,注意到里面有一个选择语句,svm的类型要选择C_SVC或NU_SVC,并且probA和probB的指针不能为空。svm类型很好搞定,但是对于probA和probB我之前并没有见到过,他们是model中的参数,当我们不涉及到概率是model中没有这两个值。后来经考察资料,当options中的-b参数设置为1时,才会涉及到probA和probB。所以要想求概率估计,第一点要注意的是-b参数要设为1.

2)svm_predict_probability函数与svm_predict函数在接口上只有第三个参数prob_estimates不同,其余两个都相同,所以这里只说明第三个参数的作用。prob_estimates里实际上存放的就是估计出的概率,比如说m分类问题,那prob_estimates就是一个1*m列的矩阵,没列代表属于相对类别的概率。这个相对类别是与svm输出结构体中的Lable相对应的!

3)说完参数就剩下返回值啦,比较简单,返回的就是最大概率对应的类别标签。如果二分类问题那就是1或-1.

最后总结一下,如果熟悉svm_predict的话,那么只有二点不同,一是-b参数要设成1,二是函数接口多了个概率矩阵,其他的只要把参数传进去就可以了。以上只是在应用这个函数过程中的体会,如有不对请指正。

抱歉!评论已关闭.