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.逻辑回归(多项 ...
随机推荐
- 小福bbs-凡事预则立
[小福bbs-凡事预则立] 1.冲刺的时间计划安排(冲刺时间为期七天,安排在2019-11-3--2019-11-14之间) 冲刺的时间 计划安排 2019.11.7 开会,安排具体工作 2019.1 ...
- routine的加载
// Hearthbuddy.Windows.MainWindow // Token: 0x06000245 RID: 581 RVA: 0x0008C318 File Offset: 0x0008A ...
- Redis 单线程却能支撑高并发 - 简书 https://www.jianshu.com/p/2d293482f272
小结: 1.在 I/O 多路复用模型中,最重要的函数调用就是 select,该方法的能够同时监控多个文件描述符的可读可写情况:2.Redis 服务采用 Reactor 的方式来实现文件事件处理器(每一 ...
- 014-多线程-基础-Exchanger-行线程间的数据交换
一.简介 Exchanger类允许在两个线程之间定义同步点,当两个线程都到达同步点时,它们交换数据.也就是第一个线程的数据进入到第二个线程中,第二线程的数据进入到第一个线程中. Exchanger可以 ...
- osg Shader 着色器
#ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <osg/Group> #include <os ...
- java调用科大讯飞流式(websocket)语音识别接口
要使用讯飞的能力,需先注册讯飞开发平台账号(讯飞官网参见https://www.xfyun.cn/). 再创建应用,点击右上角的控制台 -> 创建新应用: 每个应用都有一个appId,由这个ap ...
- -bash: netstat: 未找到命令
[root@localhost ~]# netstat -lunpt -bash: netstat: 未找到命令 [root@localhost ~]# yum -y install net-tool ...
- MySQL数据库之sql_mode解释
在MySQL5.6中,默认的SQL模式为:NO_ENGINE_SUBSTITUTION, 而在MySQL5.7中默认的SQL模式为:ONLY_FULL_GROUP_BY, STRICT_TRANS_T ...
- Vue+MySQL实现购物车的增删改查
1,创建简单数据库数据表 2,创建Mapper文件 <!--查询商品--> <select id="selectcommodity" resultType=&qu ...
- LeetCode_136. Single Number
136. Single Number Easy Given a non-empty array of integers, every element appears twice except for ...