原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。

  • 书的购买链接
  • 书的勘误,优化,源代码资源

概率密度函数是概率论中的核心概念之一,用于描述连续型随机变量所服从的概率分布。在机器学习中,我们经常对样本向量x的概率分布进行建模,往往是连续型随机变量。很多同学对于概率论中学习的这一抽象概念是模糊的。在今天的文章中,SIGAI将直观的解释概率密度函数的概念,帮你更深刻的理解它。

从随机事件说起

回忆我们在学习概率论时的经历,随机事件是第一个核心的概念,它定义为可能发生也可能不发生的事件,因此是否发生具有随机性。例如,抛一枚硬币,可能正面朝上,也可能反面朝上,正面朝上或者反面朝上都是随机事件。掷骰子,1到6这6种点数都可能朝上,每种点数朝上,都是随机事件。

与每个随机事件a关联的有一个概率值,它表示该事件发生的可能性:p(a)这个概率值必须在0到1之间,22即满足下面的不等式约束:

0<= p(a)<=1

另外,对于一次实验中所有可能出现的结果,即所有可能的随机事件,它们的概率之和必须为1:

这些随机事件不会同时发生,但必须有一件会发生。例如,对于抛硬币,不是正面朝上就是反面朝上,不会出现其他情况(这里假设硬币抛出去后不会立着),因此有:

p(正面朝上)+p(反面朝上)=1

很多时候,我们假设这些基本的随机事件发生的概率都是相等的,因此,如果有n个基本的随机事件,要使得它们发生的概率之和为1,则它们各自发生的概率都为:

对于抛硬币,正面朝上和反面朝上的概率各为1/2,对于掷骰子,每个点朝上的概率各为1/6。对于这种只有有限种可能的情况,我们通过枚举各种可能的情况,可以算出每个事件发生的概率。例如,如果我们要计算掷骰子出现1点或者2点的概率,只需要将这两点至少有一点出现的情况数,比上所有可能的情况数,就得到概率值:

上面的例子中,随机事件所有可能的情况只有有限种,而且可以用整数对这些随机事件进行编号,如

然而,有有限就有无限,对于可能有无限种情况的随机事件,我们该如何计算它发生的概率?考虑一个简单的问题,有一个长度和高度都为1的正方形,如果我们随机的扔一个点到这个正方形里,这个点落在右上方也就是红色区域里的概率是多少?

你可能已经想到了,直接用红色三角形的面积,比上整个正方形的面积,应该就是这个概率:

在这里,随机点所落的位置坐标(x, y)的分量x和y都是[0, 1]区间内的实数,这有无限多种情况,不能再像之前那样把所有的情况全部列出来,统计出这些情况的数量,然后和总情况数相除得到概率值。而是使用了“面积”这一指标来计算。看来,对这种类型的随机事件,我们得借助于“长度”,“面积”,“体积”这样的积分值来计算。

如果用集合来描述这些随机事件的话,第一种情况是有限集,我们可以给集合里的每个元素编号。第二种情况是无限集,元素的个数多到无法用整数下标来编号。

整数集与实数集

高中时我们学过集合的概念,并且知道整数集是z,实数集是R。对于有限集,可以统计集合中元素的数量即集合的基数(cardinal number,也称为集合的势cardinality)。对于无限集,元素的个数显然是无穷大,但是,都是无穷大,能不能分个三六九等呢?

回忆微积分中的极限,对于下面的极限:

虽然当x趋向于正无穷的时候,x和exp(x)都是无穷大,但它们是有级别的,在exp(x)面前,x是小巫见老巫。

同样的,对于整数集和实数集,也是有级别大小的。任意两个整数之间,如1与2之间,都密密麻麻的分布着无穷多个实数,而且,只要两个实数不相等,不管它们之间有多靠近,如0.0000001和0.0000002,在它们之间还有无穷多个实数。在数轴上,整数是离散的,而实数则是连续的,密密麻麻的布满整个数轴。因此,实数集的元素个数显然比整数要高一个级别。

随机变量

变量是我们再熟悉不过的概念,它是指一个变化的量,可以取各种不同的值。随机变量可以看做是关联了概率值的变量,即变量取每个值有一定的概率。例如,你买彩票,最后的中奖金额x就是一个随机变量,它的取值有3种情况,以0.9的概率中0元,0.09的概率中100元,0.01的概率中1000元。变量的取值来自一个集合,可以是有限集,也可以是无限集。对于无限集,可以是离散的,也可以是连续的,前者对应于整数集,后者对应于实数集。

离散型随机变量

随机变量是取值有多种可能并且取每个值都有一个概率的变量。它分为离散型和连续型两种,离散型随机变量的取值为有限个或者无限可列个(整数集是典型的无限可列),连续型随机变量的取值为无限不可列个(实数集是典型的无限不可列)。

描述离散型随机变量的概率分布的工具是概率分布表,它由随机变量取每个值的概率p(x = xi )= pi依次排列组成。它满足:

下面是一个概率分布表的例子:

表2.2 一个随机变量的概率分布表

如果我们把前面例子中掷骰子的点数x看做是随机变量,则其取值为1-6之间的整数,取每个值的概率为1/6,这是典型的离散型随机变量。

连续型随机变量

把分布表推广到无限情况,就可以得到连续型随机变量的概率密度函数。此时,随机变量取每个具体的值的概率为0,但在落在每一点处的概率是有相对大小的,描述这个概念的,就是概率密度函数。你可以把这个想象成一个实心物体,在每一点处质量为0,但是有密度,即有相对质量大小。

以上面在正方形内随机扔一个点的问题为例,此时,落点的坐标(x, y)就是连续型随机变量,落到任意一点(x, y)的概率值为0。因为这一个点的数量为1,而整个正方形内的点数为无穷大,二者之比值为0:

这实际上是均匀分布,即落在任何一点处的概率值相等。对于有些问题,落在各个不同的点处的概率是不相等的,就像一个实心物体,有些点处的密度大,有些点处的密度小,由此引入了概率密度函数的概念。

一个函数如果满足如下条件,则可以称为概率密度函数:

这可以看做是离散型随机变量的推广,积分值为1对应于取各个值的概率之和为1。分布函数是概率密度函数的变上限积分,它定义为:

显然这个函数是增函数,而且其最大值为1。分布函数的意义是随机变量的概率。注意,连续型随机变量取某一个值的概率为0,但是其取值落在某一个区间的值可以不为0:

虽然连续型随机变量取一个值的概率为0,但取各个不通过的值的概率还是有相对大小的,这个相对大小就是概率密度函数。这就好比一个物体,在任意一点处的质量为0,但在这一点有密度值,密度值衡量了在各点处的质量的相对大小。

从这个角度,我们可以将概率密度函数解释为随机变量落在一个区间内的概率与这个区间大小的比值在区间大小趋向于0时的极限:

这个过程如下图所示:

还是以上面的正方形为例,如果要计算随机点(x, y)都落在区间[0, 0.5]内的概率,可以这样计算:

这个面积,就是积分值,对应于分布函数。最常见的连续型概率分布是正态分布,也称为高斯分布。它的概率密度函数为:

其中μ

分别为均值和方差。现实世界中的很多数据,例如人的身高、体重、寿命等都近似服从正态分布。另外一种常用的分布是均匀分布,如果随机变量x服从区间[a,b]内的均匀分布,则其概率密度函数为:

在程序设计和机器学习中,这两种分布是最为常见的。

二维均匀分布的边缘密度函数_理解概率密度函数相关推荐

  1. PT_二维连续型随机变量(二维均匀分布@二维正态分布)

    文章目录 PT@经典二维分布@二维均匀分布@二维正态分布 二维均匀分布 性质 例 正态分布小结 一维正态分布 二维正态分布 二维正态分布 二维正态概率密度 边缘密度函数

  2. 二维正态分布的最大似然估计_最大似然估计-高斯分布

    前言:介绍了最简单的 问题 (这里都是玩具数据,为了方便理解才列出) 0123456789101112 X 1 2 3 4 4.2 4.4 4.6 4.8 5 6 7 8 y 0 0 0 0 1 1 ...

  3. 【数学与算法】如何通俗的理解概率密度函数

    概率分布函数就是概率密度函数. 累计分布函数: 对概率密度函数从负无穷到xxx积分,得到的是累计分布函数. 如何通俗的理解概率密度函数? 首先考虑这样一个问题,你点了一个外卖,外卖说会在两个小时送达. ...

  4. 通俗理解概率密度函数

    0.前言 概率密度函数是描述连续随机变量的分布的工具,但是因为它是个"密度",没有概率分布那么直观,下面就用通俗的说法理解概率密度函数. 1.从离续变量出发 1.1 离散随机变量 ...

  5. numpy二维数组改变某些数_【每天15分钟,5天学会NumPy】第1天:基本概念

    1.NumPy 的家族 NumPy 是 SciPy 家族的一员,而且是最重要的成员.SciPy 家族(见下图)是一个专门应用于数学.科学和工程领域的开源的Python生态圈.NumPy 最初是 Sci ...

  6. 扫描二维码读取文档_使用深度学习读取和分类扫描的文档

    扫描二维码读取文档 To many people's dismay, there is still a giant wealth of paper documents floating out the ...

  7. 二维数组各行分别求和_【PyTorch入门】之十分钟看懂二维卷积层的运算、实现及应用...

    原文链接: [动手学深度学习笔记]之二维卷积层​mp.weixin.qq.com 1.二维卷积层 本节介绍卷积神经网络中最常见的二维卷积层.二维卷积层常用来处理图像数据,它具有两个空间维度(高和宽). ...

  8. python二维表转一维表_【习题】一维表转二维表

    今天来看看梁总出的练习题哈 转换成下面的二维表效果图(要求:必须要跟效果表一致) 方法1: 小子大神Python: import xlrd import xlwt s = set() d = {} a ...

  9. python二维码加动态图_用python自制个性二维码(设置带LOGO的二维码带动图)

    本文使用的是 python3.6 MyQR库 tkinter库 我们可以使用MyQR这个库 安装方式如下: 进入命令行输入: pip3 install MyQR 如果安装不成功多半是网络有问题,可以去 ...

最新文章

  1. autocad三维汇报,bim汇报,视图汇报方法
  2. arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...
  3. 浅谈WebKit之JavaScriptCore/V8
  4. (error) ERR wrong number of arguments for 'hmget' command
  5. SpringBoot学习笔记(16):单元测试
  6. 为什么博导都希望,自己的博士生毕业也去高校当老师?
  7. 快速上手Linux核心命令(四):文件内容相关命令
  8. PHP判断文件夹是否存在和创建文件夹的方法
  9. jquery.form 异步校验_利用jQuery.validate异步验证用户名是否存在
  10. Oracle迁移PPAS:中文表名的处理
  11. codewars python Regex validate PIN code
  12. 典型的对称加密和非对称加密算法有哪些
  13. Unity 事件中心
  14. 记一次微信小程序canvas 2d 生成海报问题
  15. python结束线程_python终止线程
  16. ios微信浏览器App下载链接怎样跳转到苹果App Store
  17. 极路由1S升级系统之后再刷机学习记录
  18. 周金涛生前20篇雄文精华,一文尽览
  19. 【数据可视化】复杂高维多元数据的可视化
  20. viper4android io错误,Go之Viper

热门文章

  1. C开源hash代码uthash的用法总结(1)
  2. android详细解释键盘和鼠标事件
  3. python控制多台手机,用python同时启动多个appium,并让多个手机同时执行脚本
  4. java 字体有哪些_java字体有哪些
  5. 自动Shader优化器glsl_optimizer的编译与使用
  6. SAP HANA Backup and Recovery
  7. 干货分享:vue2.0做移动端开发用到的相关插件和经验总结(2)
  8. Spring Boot - 开发Web应用
  9. 企业级Docker Registry开源工具Harbor的用户使用指南
  10. bootstrap 总结