通俗理解Platt scaling/Platt缩放/普拉特缩放

news2024/11/19 15:37:06

一、引言

        最近在读论文的时候接触到Platt scaling,有点不理解这个概念。然后好奇心比较重,就看了一些科普,并追根溯源调查了一下Platt scaling。最终搞懂了这个概念,写个博客记录一下。中文翻译有看到:普拉特缩放,但是我比较喜欢叫它Platt缩放。Platt是一位机器学习领域的研究者,Platt scaling是以他名字命名的概念。

        Platt缩放出自论文[2],这篇论文非常的厉害,谷歌学术引用数量在2023年1月7看到时已经达到7337。

二、Platt scaling/Platt缩放/普拉特缩放

        在机器学习中,Platt scaling是一种将分类模型的输出转换为类概率分布的方法。该方法是由John Platt在支持向量机的背景下发明的,取代了Vapnik的早期方法,但可以应用于其他分类模型。Platt scaling的工作原理是将逻辑回归模型与分类器的分数拟合。

        简单地说,在一些分类模型中,对于输入一个样本x,模型给出的输出y不是一个概率值(范围为[0,1]),而是一个分数或者距离值(范围超出0,1])。这个分数或者距离值可能会影响到分类模型在其他任务中的应用,不方便使用。所以研究者非常聪明地想到了一个办法:将模型的输出值(分数或者距离值)转换成一个概率值,然后再用于其他任务。

        具体的方法如下:

        假设\tiny x是一个样本,且\tiny x \in R^d\tiny f表示一个二分类模型,对于输入\tiny x,该分类模型的输出值为\tiny f(x),其中\tiny f(x)的范围不仅仅是区间\tiny [0,1]。而在该二分类任务中,\tiny x的标签\tiny y的值为\tiny +1\tiny -1

        Platt scaling是一个两参数(two-parameter)优化问题,而优化的目标为

\tiny min-\sum_i{t_i{\rm log}(p_i)+(1-t_i){\rm log}(1-p_i)}

其中\tiny t_i=\frac{y_i+1}{2},而\tiny y_i是样本\tiny x_i是标签值;另外,\tiny p_i = \frac{1}{1+e^{Af(x_i)+B}}\tiny A\tiny B就是Platt scaling要学习的参数(只有两个)。在该优化问题中,训练集是\tiny (f(x_i), t_i)

        由于优化目标是两参数最小化问题,所以用什么优化算法应该都是可以的。其中,论文[2]使用了model-trust minimization算法[3]。具体的优化算法我这里就不多说了,如果只是理解Platt scaling的话,我们不妨想象一下使用梯度下降算法来优化这个目标。

        最终,我们可以通过样本\tiny x,经过模型\tiny f得到\tiny f(x),然后将\tiny f(x)传到Platt scaling得到一个概率值\tiny p,而\tiny p的范围一定是属于区间\tiny [0,1]的。\tiny f(x)的缩放最终得以实现。

三、应用举例

        上面我没有对具体的应用进行举例子说明。这里,我就根据我目前遇到的问题谈一个实际的应用。是这样的,我所在的领域是知识图谱嵌入,一些知识图谱嵌入模型的样本的输出值是范数距离(范围是[0,+∞)),另一些是概率值(范围是[0,1]),还有一些是实数值(范围是[-∞,+∞))。然后我看到了一篇关于集成学习的文章[4],这篇文章想要把各种知识图谱嵌入模型当作个体学习器集成起来。但是呢,这些个体学习器的输出值的范围有很大差别,集成的结果肯定是不好。所以,这篇文章的作者就使用了Platt缩放,最终将所有模型的输出值都转化为了概率值。然后,作者通过使用所有模型的概率值的算术平均当作最终的预测概率。

四、参考

        [1] Platt scaling - Wikipedia.

        [2] Platt, John. "Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods." Advances in large margin classifiers 10.3 (1999): 61-74.

        [3] Gill, Philip E., Walter Murray, and Margaret H. Wright. Practical optimization. Society for Industrial and Applied Mathematics, 2019.

        [4] Krompaß, Denis, and Volker Tresp. "Ensemble solutions for link-prediction in knowledge graphs." Proceedings of the 2nd Workshop on Linked Data for Knowledge Discovery, Porto, Portugal. 2015.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通信原理与MATLAB(十一):QAM的调制解调

目录1.QAM的调制原理2.QAM的解调原理3.QAM代码4.结果图5.特点1.QAM的调制原理 QAM调制原理如下图所示,基带码元波形经过串并转换分成I、Q两路,然后再经过电平转换(00转换成-1,01转换成-3,10转换成1,11转换成3),再与对应的载波相乘&#xff0…

scMDC:针对单细胞多模态数据进行聚类

目录摘要引言背景介绍单细胞数据聚类方法回顾ZINBscMDC摘要 单细胞多模态测序技术的发展是为了在同一细胞中同时分析不同模态的数据,它为在单细胞水平上联合分析多模态数据从而识别不同细胞类型提供了一个独特的机会。正确的聚类结果对于下游复杂生物功能研究至关重…

JavaEE多线程-认识多线程

目录一、认识操作系统二、认识进程三、内存管理四、什么是线程(Thread)?五、为什么要有线程?六、进程和线程的关系一、认识操作系统 我们需要简单了解一下操作系统。 操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织…

【Python】sklearn机器学习之DBSCAN聚类

文章目录基本原理测试构造函数基本原理 DBSCAN算法是比较经典的聚类算法了,除了sklearn之外,open3d这种常用的点云模块也提供了DBSCAN算法的实现,例如Open3d数据滤波和点云分割。 和其他聚类算法相比,DBSCAN存在一种去中心化的特…

六、Gtk4-Widgets (3)

1 Open 信号 1.1 G_APPLICATION_HANDLES_OPEN flag 在上一节中,我们使用GtkTextView、GtkTextBuffer和GtkScrolledWindow创建了一个非常简单的编辑器。我们将为程序添加文件读取功能,并将其改进为文件查看器。 要给出文件名,最简单的方法是…

(软考)系统架构师大纲

考试要求: 掌握计算机硬软件与网络的基础知识;熟悉信息系统开发过程;理解信息系统开发标准、常用信息技术标准;熟悉主流的中间件和应用服务器平台;掌握软件系统建模、系统架构设计基本技术;熟练掌握信息安全技术、安全策略、安全管理知识;了解信息化、信息技术有关…

使用Vite搭建vue3+TS项目

vite简介 vite 是一个基于 Vue3 单文件组件的非打包开发服务器,它具有快速的冷启动,不需要等待打包操作;并且官网说是下一代的前端构建工具。 初始化项目 npm init vitelatest1.输入项目名称 2.选择Vue 3.选择TS 4.启动项目 5.项目启…

【阶段三】Python机器学习07篇:模型评估函数介绍(回归模型)

本篇的思维导图: 模型评估函数介绍(回归模型) 绝对误差与相对误差: 设Y表示实际值, 表示预测值,则称E为绝对误差(Absolute Error),计算公式如式所示: e为相对误差(Relative Error),计算公式如式所示:

Maven怎么写本地仓库没有的架包坐标

什么是jar包的坐标? 当我们使用Maven开发一个项目时,需要向项目中导入很多个jar包,这些jar包不需要我们自己一个个的导入,只需要在创建的项目中的pom.xml文件中写上需要的jar包的坐标,Maven就会去本地仓库找有没有这个…

黑马学ElasticSearch(一)

目录: (1)初识ES-什么是elasticsearch (2)初识ES-倒排索引 (3)ES与MySQL的概念对比 (4)安装ES (1)初识ES-什么是elasticseach 随着业务的发…

MYSQL8.0+远程连接|主从复制配置|各种错误(吐血整理)

目录 环境介绍 主机/从机文件配置 主机部分 从机部分 连接测试 报错踩坑|解决办法 写在前面:最近在做项目优化,看完黑马的mysql的主从复制后,准备着手来练练,没想到这入坑就是三四天的错,心情烦躁。如今已解决&a…

SpringCloud笔记 - Day1 概念注册中心负载均衡

https://www.bilibili.com/video/BV1LQ4y127n4 1. 微服务导学 异步通信可以大大提高服务的并发。 服务的异常定位: 分布式日志服务系统监控和链路追踪 自动化部署:Jenkins——docker——k8s——RANCHER 持续集成 2. 微服务导学2 微服务治理、异步通…

【EHub_tx1_tx2_E100】Ubuntu18.04 + ROS_ Melodic + RS-LiDAR-16 激光雷达测试

简介:介绍 RS-LiDAR-16 16线激光雷达 在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS驱动,如何打开使用RVIZ 查看点云数据,本文的前提条件是你的TX1里已经安装了ROS版本:Melo…

类和对象2

static关键字 1.静态变量或方法不属于对象,但依赖类。 2.静态变量是全局变量,生命周期从类被加载后一直到程序结束 3.静态变量内存只存一份,在静态方法区存储(静态方法区:静态变量,类信息(方法…

Odoo 16 企业版手册 - 库存管理之仓库管理

仓库管理 仓库管理是公司库存运营中的重要活动之一。为了使库存运营和调拨的顺利运作,公司的仓库应该得到适当的管理和监控。Odoo,作为一名优秀的库存管理助理,可以为您提供有效管理公司仓库的专用平台。Odoo提供的工具可以帮助您同时管理多个…

解决Tinkphp的success跳转“使用路由别名后模块和控制器访问不了”问题

遇到的问题:我的thinkphp5网站添加了以下路由别名:Route::alias([ index>index/index, ]);使用http://域名/Index/user/password.html访问正常但使用http://域名/index/user/password.html就访问失败使用$this->success(修改密码成功);进行提示跳转…

【MySQL】MySQL面试题八股文详解——事务篇

【MySQL】MySQL面试题八股文详解——事务篇 1:什么是数据库事务? 一言蔽之,事务是逻辑上的一组操作,要么都执行,要么都不执行。 是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作&…

C语言经典编程题 --- 打印菱形

目录 一、题目描述 二、普通解法 三、曼哈顿距离解法 一、题目描述 输入一个奇数 n,输出一个由 * 构成的 n 阶实心菱形 输入格式:一个奇数 n。 输出格式:输出一个由 * 构成的 n 阶实心菱形。 输入样例:5输出样例&#xff1…

【操作系统】生产环境消失的进程如何排查

文章目录1.生产环境问题描述2.Linux软件环境准备3.编译运行程序,分析现象4.进程消失原因分析5.生产类似进程消失的案例6.如何通过日志查看消失进程1.生产环境问题描述 一台机器上的某个进程直接就消失了,别的机器上的服务都正常跑着,怎么排查…

AI城管占道经营识别检测算法 yolo

AI城管占道经营识别检测算法通过yolopython深度学习训练框架模型对道路街区小摊贩占道经营违规摆摊行为进行检测,检测有出店经营占道经营违规摆摊情况,yolopython深度学习训练框架模型会立即抓拍存档。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是…