SVM输出概率值的计算过程
来源:互联网 发布:java各个程度的书籍 编辑:程序博客网 时间:2024/06/04 17:58
老师要求svm输出概率值,然后发现libsvm已经自带了这个函数,网络上没有看到有说明,于是看了看相关文献自己写了一个。
首先附参考文献:
1.Probabilistic Outputsfor Support Vector Machines and Comparisons to Regularized Likelihood Methods
2.A Note on Platt’s Probabilistic Outputs for Support VectorMachines
Vector Machine。
主要参考文献是1,libsvm里采用的是论文1的思路输出的概率值。下面先列出一些基础知识。
1基础知识:
1.1 sigmoid函数
sigmoid函数是一个良好的阈值函数,连续,光滑,严格单调。
可以将实轴上的数值投射到[0,1]上,即将一个输出实值抓化为一个概率值。比如一个分类器的分界线为0,大于0标为+1,小于0标为-1;如果使用上图的sigmoid函数套一下输出值。我们就可以说,输出为0时标为+1的概率为0.5;输出为2时标为+1的概率为0.8等。
1.2后验估计
从极大似然估计到极大后验估计。基础知识在此不再详述。
下面是做N次独立重复实验的后验估计。
(http://wenku.baidu.com/link?url=hrFN6mmcRSSIST6k_fmz5JQ-Q6Hl8kAfpopvi91KENTqIPIvF431TyWXCbrNwGY4DfIayQv05RtTL6InvO9MaHfYUKGefcMpTtAY-lAMISO)
对上面第四点得到的后验估计求均值。参数的后验估计值为(X+1)/(N+2)
(有时后验估计取峰值,有时取均值,这个还不太明白。)
2 支持向量机输出概率值的方法。
首先输出的概率值的式子为:
、
同样采取一个sigmoid函数将支持向量机的输出值映射到[0,1]之间。我们知道支持向量机的决策函数为:
这个括弧里面的量是一个与分界面的距离成正比的量。这种算法的思想是离分界面越近的点认为分对的可能性越小;离分界面越远的点认为分对的可能性越大。
有两个参数A和B来调整映射值的大小,我们姑且叫它们位置参量(B)和尺度参量(A)。
然后这两个参数A和B是未知参数,需要估计。可能会想到用这式子来估计A和B的值:
论文中是这样写的
negative log likelihood of the training data, which is a cross-entropy error function
关于负log似然函数和交叉熵损失方程。这里有更详细的说明:
http://blog.csdn.net/u012162613/article/details/44239919
但是很直观可以看出,当y只能取+1或者-1时,这个式子就退化成一个极大似然估计函数。
使用这种方法是从全部的数据中估计A和B的值,Platt认为这种方法存在过拟合的风险,因此他假设存在一些out-of-sample的数据来修正的值,也就是不取1和0了
他采取了我们上文基础知识二所讲的贝叶斯方法:
取
这个式子和1.2中推倒的结果是一致的。
由此我们获得了最后的计算流程:
我对那个交叉熵还蛮感兴趣,准备研究一下。看完再补
- SVM输出概率值的计算过程
- SVM输出概率值的计算过程
- svm 预测标签的概率输出
- svm 预测标签的概率输出
- SVM的概率输出(Platt scaling)
- SVM概率输出原理
- soft-svm的理解+logistic 与SVM结合输出概率值+logistic 用到z域
- 用概率的方法计算Pi值
- 计算概率的软件
- SVM的安装过程
- 计算输出xypq的值
- 关于色子的概率计算
- php计算抽奖的概率
- php计算抽奖的概率
- 骰子游戏的概率计算
- 用概率法+积分法计算PI的值
- 【机器学习详解】SVM解二分类,多分类,及后验概率输出
- SVM解二分类,多分类,及后验概率输出
- qt学习笔记(六)之简析对象树
- 表达示求值
- IOS多线程之线程的创建
- 你的企业更适合哪种营销团队管理模式?
- mysql导入 导出本地
- SVM输出概率值的计算过程
- 工作日志 7.9
- 图像处理与计算机视觉:基础,经典以及最近发展
- 1014--Hibernate 检索方式--概述
- 关于指定的经纬度是否落在多边形内
- 高德地图获取当前屏幕中心点的经纬度
- 实现背景的变色动画
- 新手入门程序必须克服的5个障碍
- 1015--Hibernate 检索方式--HQL 检索方式