用bayes公式进行机器学习的经典案例

用bayes公式进行机器学习的经典案例

从本科时候(大约9年前)刚接触Bayes公式,只知道P(A|B)×P(B) = P(AB) = P(B|A)×P(A)

到硕士期间,机器学习课上对P(B|A)P(A)冠以“先验概率”,而不知“先验”二字到底从何而来。

再到工作了几年之后重回校园,重新拾起对求知的热情,重新用向小白讲述Bayes公式的态度,讲述自己对它最朴素的理解。尽量让像我一样刚入门的小白同学们,能用生活中最朴素的例子找到bayes公式中,“先验”二字的由来。

要理解bayes公式,需从全概率公式讲起:

$$ P(A_i|B)=\frac {P(B|A_i)P(A_i)}{\displaystyle\sum_{j=1}^nP(B|A_j)\times P(A_j)} $$ 其中的全概率公式: $$ \displaystyle\sum_{j=1}^nP(B|A_j)\times P(A_j) = P(B) $$

这里,可理解: $$ A_j \rightarrow Class_j \text{ 这是你样本可能从属的类别/本质/属性} B \rightarrow Events/Data \text{ 这是你看到的样本的表象} $$

2.我的进一步理解

2.1 设有一幅扑克牌(这是一种等概率的情况)

摸到一张J,想知道它属于♥️这一类的概率。 这里,A是现象,是观察到的属性。♥️,♣️,♦️,♠️是对所有除了大王小王外的扑克牌的四个类别。 任务就是要根据现象J,对这张牌进行归类,求这张牌属于♥️这一类的概率。

$$ P(A|B) \text{就是看到J的情况下,属于} \heartsuit \text{的概率} $$ 这是我们要求的量。 $$ P(A|B)=\frac {P(B|A)P(A)}{P(B)} $$ P(B|A) - 在已知♥️的牌中,有几个j,显然,1/13

P(A) - 在整副牌中,红桃出现的概率:13/54

P(B) - 在整副牌中,J出现的概率:4/54 这里这个P(B)可以是如下公式计算的: $$ \displaystyle\sum_{j=1}^nP(B|A_j)\times P(A_j) = P(B) $$ 即,A_j代表的是♥️,♣️,♦️,♠️中的某一个类别。例如,j=1, 我们认为是♥️,则,P(B|A1) = 1/13 P(A1) = 13/54 此时, $$ P(B|A_1) \times P(A_1) = \frac1{13} \times \frac {13}{54} = \frac{1}{54} $$ 当 j = 1,2,3,4 时,由于这里每个 $$ P(B|A_j) $$ 都是相等的,所以 $$ P(B) = 4 \times \frac{1}{54} = \frac{4}{54} $$ 所以,上面的P(A|B) 就能算出来了。因为P(B|A) ,P(A) ,P(B)都知道了。

==以上是一个等概率的问题。更一般地,我们要用Bayes公式解决不等概率、根据观察对对象进行分类的问题。==

2.2 设有三棵橘子树(这是更一般的场景)

有甲乙丙三颗橘子树,到了秋收的季节,老农对他们进行采摘。
第一年:

  • 甲橘子树出来的果子多数都偏红,口感好。
  • 乙橘子树出来的果子多数都普通,口感一般。
  • 丙橘子树出来的果子多数都偏黄,口感不好。

果农从此知道:

  • P(A) - 各种表象出现的概率,
  • P(A|B) - 在已知橘子来源的情况下,各种口感出现的概率,
  • P(B) - 各种本质属性的概率,即各橘子树的概率

第二年:
       新来的果农和老农一起工作,他们拿起一个橘子,要判断这个果子出自甲乙丙三棵果树里的哪一棵。

总结一下:

Bayes公式的思想就是:先从本质到现象,再从现象到本质。

找一个案例编程实现

  1. 用Bayes公式完成分类任务的例子
Published At
comments powered by Disqus