专栏首页Python与算法之美3个范例带你读懂贝叶斯法则

3个范例带你读懂贝叶斯法则

贝叶斯法则可能是概率论中最有生命力的一个公式。它可以用来计算条件概率或者主观概率。

贝叶斯法则的思想非常简单:随机事件发生的概率随着相关条件的发生而改变,一个命题真假的信念即主观概率随着相关证据的发现而改变。当正相关条件发生时,条件概率上调,当负相关条件发生时,条件概率下调。当有利证据发现时,主观概率上调,当不利证据发现时,主观概率下调。

然而,贝叶斯法则具有非常深刻的哲学意义和广泛的应用价值。哲学家们用它来解决休谟归纳问题;生命科学家用它来研究基因是如何被控制的;教育学家突然意识到,学生的学习过程正是贝叶斯法则的运用;基金经理用贝叶斯法则找到投资策略;Google用贝叶斯法则改进搜索功能;人工智能,机器翻译中大量用到贝叶斯法则……

本文将通过公式推演和3个简单的范例,带领大家读懂贝叶斯法则并领略其独特的魅力。

一,条件概率和贝叶斯定理

条件概率P(A|B)表示随机事件B发生的前提下随机事件A发生的概率。条件概率P(A|B)也被称为后验概率,P(A)是其对应的先验概率。

以下为第1个应用举例:

HIV携带检测

假设艾滋病毒HIV在人群中的携带比率为0.01%,目前检测它的医学技术非常高超,如果一个人真的携带有HIV,那么血液检测有99.9%的概率为阳性,即检测出来的概率很高。如果一个人不携带有HIV,那么血液检测只有0.01%的概率为阳性,即冤枉一个正常人的概率很低。现在从街头上随机找个人给他做检查,发现检测结果不妙,是HIV阳性,那么他真的携带有HIV病毒的概率为多大?

从这个例子中,我们发现如果一个事件发生的先验概率很低,那么即使出现了非常有力的证据,这个事件发生的后验概率也不一定会很高。

二,朴素贝叶斯方法

在实际应用贝叶斯法则的时候,通常会存在许多的条件,而不是单个条件。此时为了简化问题,我们有时候会做一个非常天真的假设,即这些条件事件之间是相互独立的,这时候我们会得到朴素贝叶斯方法。

以下是第2个应用范例:

垃圾邮件识别

假设现在收到一封邮件,内容如下:

"东南亚7日游,只要6999。" 那么这封邮件是否是一封垃圾邮件呢?为了用算法对垃圾邮件进行分类,我们对100000封邮件进行了标注,其中正常邮件有80000封,垃圾邮件有20000封。我们把收到的这封邮件进行分词处理,得到"东南亚"、"7日游","只要","6999"这4个词。统计它们在已标注邮件中出现的次数如下。

现在利用朴素贝叶斯方法,我们可以计算这封邮件是否为垃圾邮件的概率了。

于是,这封邮件有0.96的概率是一封垃圾邮件。

三,贝叶斯排序模型

在对多条件下的后验概率进行展开时,除了运用朴素贝叶斯假设外,我们还可以使用另外一种迭代的方法。

当存在更多的条件时,可以继续按照这个模式展开。以上展开表达式和各个条件事件的迭代顺序无关。下面是一个简单的证明。

利用这种迭代展开式,我们可以构造一种贝叶斯排序模型,对诸多信息进行加工,生成主观概率。

以下为第3个应用范例:

贝叶斯排序模型

有两个同类别商品A和B,A有1个五星好评,B有5个五星好评和1个四星好评,那么你觉得这两个商品哪个更好一些呢? 有的同学会觉得商品A更好一些,因为A的平均星级就是5,而B的平均星级为4.83。 另外一些同学会觉得B更好一些,因为B有更多的五星好评,可靠性更大。 实际上我们在对商品的诸多评论信息加工出一个对商品的整体评价时,使用的就是贝叶斯公式。

在没有任何信息的前提下,我们假设一个商品为非常棒的商品的概率为0.5。

并且我们假设,一个非常棒的商品获得各个星级的评价的概率分别如下,即我们假设非常棒的商品倾向于获得较高的评级。

一个不是非常棒的商品获得各个星级的评价的概率分别如下,即我们假设不是非常棒的商品倾向于获得较低的评级。

迭代计算如下。

于是我们得出结论:B商品更好。

本文分享自微信公众号 - Python与算法之美(Python_Ai_Road),作者:梁云1991

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1,Jupyter NoteBook 常用魔法命令

    Jupyter NoteBook 是功能强大的Python交互IDE,深受数据分析师和算法工程师的热爱。Jupyter NoteBook 在综合使用文字、代码、...

    lyhue1991
  • 16,时间序列绘图专题

    在金融经济等行业的数据分析领域,经常会遇到时间序列绘图的问题。相比于一般的绘图,时间序列绘图的主要困难在于坐标轴时间刻度的设置,可以采取以下3种方法: 1,将...

    lyhue1991
  • 想去看机会?这10道最高频的手撕代码题都会了吗?

    相信我,彻底掌握以下这10道题的解法,你顺利做出手撕代码面试题目的概率至少不低于50%。

    lyhue1991
  • circBase、RegRNA2.0、CircInteractome

    在circBase(http://www.circbase.org/cgi-bin/listsearch.cgi)中,我们可以通过circRNA名称(hsa_c...

    微点
  • 国际泰斗:现在谈强人工智能为时尚早

    人工智能快速发展,在许多领域取得重大影响,使得不少人担心可能会出现超级智能。DeepMind的联合创始人Demis Hassabis和加拿大多伦多大学教授Geo...

    人工智能快报
  • Java assert关键字

    Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion)。语法格式有两种:

    Jacob丶
  • 35 道咱们必须要清楚的 React 面试题

    虚拟 DOM (VDOM)是真实 DOM 在内存中的表示。UI 的表示形式保存在内存中,并与实际的 DOM 同步。这是一个发生在渲染函数被调用和元素在屏幕上显示...

    前端小智@大迁世界
  • 牛!五芳斋斥资千万征集裹粽机器人,工程师赶紧上

    近日,百年老字号五芳斋正式发布了“1000万征集裹粽机器人”的活动征集令,向社会大众及相关机器人研发机构重金悬赏,一时间引发热议。 据了解,在 2017年2月份...

    机器人网
  • Win Server 2003 10条小技巧

    微软推出Windows Server 2003已经有一段时间了,但是,由于它是一个面向企业用户的服务器操作系统,所以,没有引起更多个人用户的注意。实际上,简单地...

    流柯
  • Hadoop总结篇之二--yarn的概况

    在弄清楚yarn是什么之前,先来看一下MRv1。 它的由编程模型+数据处理引擎(map/reduceTask)+运行时环境组成(JobTracker/TaskT...

    小端

扫码关注云+社区

领取腾讯云代金券