SVM的概率输出(Platt scaling)
SVM的概率输出(Platt scaling)
最近在研究基于样本的相似度度量问题,其中用到了分类器的概率输出(Platt scaling),大概了解了一下用法,总结的比较简单。
Platt scaling参考wiki的定义,Platt scaling,也叫Platt calibration,是一种将分类模型的输出变换为基于类别的概率分布的方法(可能翻译的不太准确,附上原文:In machine learning, Platt scaling or Platt calibration is a way of transforming the outputs of a classification model into a probability distribution over classes.)Platt scaling最初是用来解决SVM分类结果的概率输出(也可用于其他分类方法),采用逻辑斯蒂回归模型拟合分类器分数(classifier's socre)。
这里定义SVM的输出(非阈值化的):
其中
Platt基于Bayes准则,用后验概率 P(y=1|f) 替代类别条件密度 p(f|y),采用Sigmoid的参数化形式表达。
模型有两个参数A和B,采用最大似然估计训练,定义新的训练集合,其中ti为目标概率:
最小化训练数据的Negative Log Likelihood,目标函数为cross-entropy error function:
其中
Platt在论文中指出优化的两个问题:训练集的选择和避免过拟合的方法。
Platt Scaling的方法相当于创建新的训练集(SVM分类器输出Score和标签),基于这些新的数据进行训练,训练模型的输出就是分类器的概率输出。
相关参考:
Classifier calibration with Platt's scaling and isotonic regression
Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods 1999
SVM的概率输出(Platt scaling)的更多相关文章
- 概率p输出1,概率1-p输出0,等概率输出0和1
有个输出0和1的BIASED RANDOM,它以概率p输出1,以概率1-p输出0,以此RANDOM函数为基础,生成另一个RANDOM函数,该函数以1/2的概率输出1,以1/2的概率输出0 题目解答: ...
- 从0到n-1中随机等概率输出m个不同的数
//假设输入的n远大于m void knuth(int n, int m) { for (int i = 0; i < n; i++) { if (rand() % (n - i)<m) ...
- 【机器学习具体解释】SVM解二分类,多分类,及后验概率输出
转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN−勿在浮沙筑高台 支持向量机(Support Vecto ...
- 支持向量机SVM 参数选择
http://ju.outofmemory.cn/entry/119152 http://www.cnblogs.com/zhizhan/p/4412343.html 支持向量机SVM是从线性可分情况 ...
- paper 130:MatLab分类器大全(svm,knn,随机森林等)
train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出).1.逻辑回归(多项式 ...
- 项目二:使用机器学习(SVM)进行基因预测
SVM软件包 LIBSVM -- A Library for Support Vector Machines(本项目所用到的SVM包)(目前最新版:libsvm-3.21,2016年7月8日) C-S ...
- SVM、LR、决策树的对比
一.LR LR,DT,SVM都有自身的特性,首先来看一下LR,工业界最受青睐的机器学习算法,训练.预测的高效性能以及算法容易实现使其能轻松适应工业界的需求.LR还有个非常方便实用的额外功能就是它并不会 ...
- matlab 基于 libsvm工具箱的svm分类遇到的问题与解决
最近在做基于无线感知的身份识别这个工作,在后期数据处理阶段,需要使用二分类的方法进行训练模型.本身使用matlab做,所以看了一下网上很多都是使用libsvm这个工具箱,就去下载了,既然用到了想着就把 ...
- MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)
train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出). 1.逻辑回归(多项 ...
随机推荐
- Linux系统下vi编辑器的一些简单使用操作
Linux系统安装vi编辑器 打开终端,输入: sudo apt install vim 然后输入Y等待安装即可 Linux系统下使用vi编辑器的使用 安装好vim后,终端中输入vim即可进入vim编 ...
- java Calendar 小时值得到24进制格式
Calendar cal = Calendar.getInstance(); cal.get(Calendar.HOUR_OF_DAY)
- arcgis python 表属性转html
import arcpy import sys import string import os tablePath = arcpy.GetParameterAsText(0) filePath = a ...
- 在phpstorm中如何对比文件呢?
有两种方法: 在phpstorm中左侧的资源管理器中,按住键盘上的CTRL键,然后鼠标右键,点击菜单中的"Compare Tow Files",就可以了,如下图 在phpstorm ...
- React拾遗(上)
JSX代表Objects Babel转义器会把JSX转换成一个名为React.createElement()的方法调用. 下面两种代码的作用是完全相同的: const element = ( < ...
- 如何配置 VirtualBox 中的客户机与宿主机之间的网络连接
如何配置 VirtualBox 中的客户机与宿主机之间的网络连接 作者: Aaron Kili 译者: LCTT rusking | 2017-03-01 13:40 评论: 3 收藏: 3 当你 ...
- E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem. 爆错解决办法
author :headsen chen date : 2019-06-06 10:09:06 root@ubuntu:~# apt-get remove java-1.8.0-openjdk E ...
- Android高频单词
Display 显示 Camera 照相机 Bluetooth 蓝牙 Flash Memory 闪存 Audio 音频 Management 管理 SurFace 界面 Media 多媒体 Frame ...
- lua table操作
求最大值,最小值及长度: function maxn(t) local mn = nil for i, v in pairs(t) do if (mn==nil) then mn=v end if ( ...
- javascript从网络下载随机笑话
/*** * 讲笑话函数(调试用) * @param callback 回调函数 */ function randomText(callback) { var result =''; $.ajax({ ...