贝叶斯公式作为数学中最有趣的公式之一,其简洁强大实用的特性在现实生活中使用了两百多年,将人类的思维模式用数学来表达出来,堪称上帝的公式。

本篇文章面向学了贝叶斯公式但没学懂的童鞋,如果你还对贝叶斯公式存在困惑,或许看了本文就理解了。对于只想简单了解贝叶斯公式的童鞋,本文也足够了。

在没有学过概率论的童鞋,思维模式大多是正向思维。什么是正向思维?有一个很典型的例子就是,有一个黑箱子,我们已经知道里面有N个白球和M个黑球,那么我们就能知道闭着眼睛随机抽出来的球的概率。正向思维就是我们只有知道了所有可能发生的情况,才能推断出每个情况发生的概率。

既然有正向思维,那么倒向思维是什么?倒向思维是,如果我们事先并不知道黑箱里面黑白球的比例,而是闭着眼睛摸出一个或好几个球,观察这些取出来的球的颜色之后,就此对黑箱里面的黑白球的比例进行推测,但是推测不出箱子里面球的数量。通俗地讲,就是通过一些已知的概率可以求一些未知的概率。

伟大的贝叶斯公式就是用倒向思维来条件概率的。

这里又引出一个概念:条件概率。先看条件概率的符号表示:P(B|A),意思是在事件A发生的条件下,事件B发生的概率。

刚才说贝叶斯公式是求条件概率的,那是时候要亮出贝叶斯公式了:

P(B|A) = P(AB) / P(A)

我们先来理解 P(B|A) 究竟是个什么鬼,P(B|A) 是在事件A发生的条件下,事件B发生的概率。有人还是很难理解,我们换个说法,P(B|A) 在公式里面的意思是 P(AB) 占 P(A) 的比重。

(实在还是不理解条件概率的话,来看下面的文氏图来辅助理解 P(AB) 占 P(A) 的比重是什么意思)

------------------------------------------------------------------------------------------------------------------------------

以上就是贝叶斯的简单理论知识。不过,学数学嘛,只学理论不行的,还要用到例子来学习。

首先,我们先来看一个正向思维的例子,以LOL某游戏玩家大雄同学玩了100局游戏为例(其中涉及“开黑”术语是和朋友一起玩游戏的意思)。

玩家大雄胜利情况
玩家 总游戏局数 总胜利局数 开黑局数 开黑且胜利的局数
大雄 100 80 34 24

设A事件为玩家胜利

P(A) = 80/100 = 0.8

设B事件为玩家开黑

P(B) = 34/100 = 0.34

设AB事件为玩家开黑且胜利

P(AB) = 24/100 = 0.24

前方注意,条件概率来了

设C事件为如果玩家胜利,此胜利局为开黑局

P(C) = P(B|A) = P(AB) / P(A) = 0.24/0.8 = 0.3

设D事件为如果玩家开黑,此开黑局为胜利局

P(D) = P(A|B) = P(AB) / P(B) = 0.24/0.34 = 0.71

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

看了以上例子,是否对正向思维有了更好的理解。是时候来研究一下倒向思维的贝叶斯公式了。

玩家大雄的胜利情况
玩家 总胜率 胜利局中为开黑局的可能性 失败局中为开黑局的可能性
大雄 0.8 0.3 0.5

我们要做的是,根据表格中的已知的概率,来求玩家在开黑局中胜利的概率。

设A事件为玩家胜利

P(A) = 0.8
P(~A) = 1 - P(A) = 1-0.8 = 0.2

设B事件为玩家开黑,根据已知条件概率有

胜利局中为开黑局的可能性:

P(B|A) = 0.3
失败局中为开黑局的可能性:
P(B|~A) = 0.5

根据全概率公式求玩家玩游戏会开黑的概率

P(B) = P(B|A) * P(A) + P(B|~A) * P(~A)
= 0.3*0.8 + 0.5*0.2
= 0.34

设C事件为玩家在开黑局中取得胜利

(计算过程中将贝叶斯公式展开,其中分母由全概率公式求得)

P(C) = P(A|B) = P(AB) / P(B)
= P(B|A) * P(A) / ( P(B|A) * P(A) + P(B|~A) * P(~A) )

= 0.71

结论:我们根据所有的计算结果,我们可以猜测得出,大雄玩家平时玩LOL,有三成机率会和朋友一起开黑,并且在只要开黑就有七成的胜利把握。最终结论就是,跟大雄一起开黑不算太坑。

=================================================================================================================

看了上面这个例子,是不是对倒向思维有了很好的理解。
贝叶斯公式作为机器学习最核心的算法之一,单纯只有以上对贝叶斯公式的理解还是不够,还需要学习多维随机变量的概率密度、最大似然估计、各种分布等等概率学的知识。否则也难以理解机器学习算法中的朴素贝叶斯算法、贝叶斯分类模型等等概念。学习概率论和数理统计的知识是人工智能的基础,但是学习概率论的前提仍需有高等数学和线性代数的知识作为铺垫。所以,单纯依赖离散数学和数据结构的知识来编程已经完全不够的,因为未来是人工智能的时代。噢,离题了,在机器学习领域中,在贝叶斯公式中加了一些名词(不知是在统计学中加的名词还是在计算机领域加的,这个我就没考究过,甚至名词都有可能有误,因为在网上看到的):

后验概率P(A|B) = 似然函数P(B|A) * 先验概率P(A) / 证据因子P(B)

上面四个概念将会在往后系列文章(二)中做解释。

===============================================================================================================================

下面再举一个类似的例子作为本文的结束:
情景:作为程序员的小明又要去相亲了,根据小明以往的经验,如果相亲对象是一个美女,他们有下次约会的概率有九成;如果相亲对象不够漂亮,他们有下次约会的概率有三成;综合媒婆和朋友的说法,得知相亲对象是美女的概率有两成,那么,他跟相亲对象有下次约会的概率是多少?

设A事件为相亲对象是美女,根据题意,A事d件的发送有两成概率

P(A) = 0.2

则相亲对象不漂亮的概率有八成

P(~A) = 0.8

设B事件为小明跟相亲对象有第二次约会,那么有

P(B|A) = 0.9
P(B|~A) = 0.3

根据伟大的贝叶斯公式,求得

P(B) = P(B|A) * P(A) / ( P(B|A) * P(A) + P(B|~A) * P(~A) )
= 0.9*0.2 / ( 0.9*0.2 + 0.3*0.8 )
= 0.43

根据结果:小明跟相亲对象有第二次约会的概率不到五成,果然程序员找女朋友好难啊。。。


===================================================

正文到此结束,有错误之处,还请指出,谢谢观看!

======================================

贝叶斯公式的理解——机器学习算法(一)相关推荐

  1. 从零实现来理解机器学习算法:书籍推荐及障碍的克服

     从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...

  2. 【图解】算法原理!通俗理解机器学习算法

    机器之心报道 机器之心编辑部 算法公式挺费神,机器学习太伤人.任何一个刚入门机器学习的人都会被复杂的公式和晦涩难懂的术语吓到.但其实,如果有通俗易懂的图解,理解机器学习的原理就会非常容易.本文整理了一 ...

  3. a*算法的优缺点_轻松理解机器学习算法-朴素贝叶斯

    1.预备知识 贝叶斯定理(Bayes' theorem)是概率论中的一个定理,它跟随机变量的条件概率以及边缘概率分布有关.通常事件A在事件B发生的条件下的概率,与事件B在事件A发生的条件下的概率是不一 ...

  4. 机器学习与知识发现_01机器学习算法整体知识体系与学习路线攻略

    入行机器学习有一年多了,做过大大小小的机器学习项目,参加数据竞赛等实践活动,从最初的懵懵懂懂到现在逐步的深入,也渐渐的有了很多的体会和理解,本篇文章主要来阐述机器学习的知识体系,以让更多人明白机器学习 ...

  5. 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

    [机器学习基本理论]详解最大似然估计(MLE).最大后验概率估计(MAP),以及贝叶斯公式的理解 https://mp.weixin.qq.com/s/6H0gmMWvTExySMraroLVlQ 最 ...

  6. 深入理解机器学习——集成学习(二):提升法Boosting与Adaboost算法

    分类目录:<深入理解机器学习>总目录 Boosting是一族可将弱学习器提升为强学习器的算法.这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进 ...

  7. 机器学习分类算法_达观数据:5分钟带你理解机器学习及分类算法

    1.本文介绍内容:什么是机器学习,机器学习有哪些分类算法,分类算法之k-近邻,决策树,随机森林2.本文适合人群:本文通过通俗易懂的语言和例子介绍核心思想,不拽高大上的名词,适合于不懂机器学习的小白3. ...

  8. 深入理解机器学习——EM算法/最大期望算法(Expectation-Maximization Algorithm, EM)

    分类目录:<深入理解机器学习>总目录 在前面的讨论中,我们一直假设训练样本所有属性变量的值都已被观测到,即训练样本是"完整"的.但在现实应用中往往会遇到"不完 ...

  9. 深入理解机器学习——k近邻(kNN,k-Nearest Neighbor)算法:基础知识

    分类目录:<深入理解机器学习>总目录 k近邻(k-Nearest Neighbor,kNN)算法是一种常用的有监督学习算法,可以完成分类与回归的任务,其工作机制非常简单:给定测试样本,基于 ...

  10. 【机器学习算法实践】lightGBM将可解释的机器学习实现工业落地,小数据量机器学习就够了,大数据量还得深度学习。推荐看论文进行理解,boosting方法有残差的感觉了

    LightGBM是2017年由微软推出的可扩展机器学习系统,是微软旗下DMKT的一个开源项目,由2014年首届阿里巴巴大数据竞赛获胜者之一柯国霖老师带领开发.它是一款基于GBDT(梯度提升决策树)算法 ...

最新文章

  1. Parallel小记
  2. C语言函数集(十六)
  3. QTableWidgetble自定义表头排序设置
  4. Jeremy Keith在 Fronteers 2010 上的主题演讲
  5. MyISAM和InnoDB执行引擎的区别,为什么MyISAM查询效率高,B树和B+树的区别
  6. python文件替换一行_python自动化替换文件中每一行中的特有字符串
  7. SpringBoot入门(四)——自动配置
  8. LGBM使用贝叶斯调参
  9. 2D阵列中的峰值检测
  10. [转载] python导入numpy函数库
  11. 2018大盘点 | R语言中文社区十大火爆文章
  12. 【2018蓝桥省赛A组C/C++】倍数问题(dp+滚动数组)
  13. python运维开发实战项目-1
  14. 计算机二级access宝典app,二级Access考试宝典
  15. 下载篇:程序员修炼之道+从小工到专家(高清、免费)
  16. c语言入门这一篇就够了-学习笔记(一万字)
  17. Office Execl常用函数使用方法
  18. Python求解平方怪圈问题
  19. 物联网设备网络接入方式
  20. 学生信息管理系统代码全篇

热门文章

  1. Ubuntu 20.04 修改IP地址
  2. 科密a1无法连接数据库_科密考勤机系统老说数据库连接失败是什么原因?
  3. OPENCV 实现png绘制,alpha通道叠加。
  4. 骑士CMS文件包含+getshell漏洞复现(python自动化验证扫描漏洞)
  5. 计算机操作系统面试题库和答案
  6. C语言从入门到不放弃---编程环境的搭建到上手写代码
  7. JMETER badboy 下载及安装
  8. HTML5 实现拼图游戏
  9. 使用layui中的laypage遇到的各种问题总结
  10. iOS MAC抓包工具charles(青花瓷)配置教程