美文网首页机器学习
附录A:机器学习基础之概率论和数理统计

附录A:机器学习基础之概率论和数理统计

作者: 秋的懵懂 | 来源:发表于2018-08-13 17:29 被阅读46次

    时间:2018-08-13 作者:魏文应


    一、概 率

    概率在机器学习中是比较重要的。但是对于程序员来说,要快速尝试使用机器学习软件包,一开始就不太可能花一个月的时间去研读概率论。下面的讲解相对于教科书来说,实在是不严谨,但可以达到快速理解并简单应用的效果。等你有时间再回过头来慢慢研读概率论吧,先看下面内容,然后快速去尝试代码。

    条件概率

    在B事件发生的情况下,A事件发生的概率:

    P(A | B)

    P(A | B) 就叫做 条件概率。比如,已知小明感冒了,小明可能会流鼻涕,那么条件概率 P(流鼻涕 | 感冒) 表示的就是 已知小明感冒了 的情况下,小明会流鼻涕的概率 是多少。

    乘法公式

    下面的等式 很简单,但是比较重要,多考虑几遍,我们后面会用到:

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

    AB 叫做 积事件,表示A、B两件事同时发生,P(AB) 表示事件A和事件B 同时发生的概率。怎么理解这个公式呢?举个例子:假如你和你女朋友是一个班的,一个学期 n 节课,你去上课的次数 m 节课,你和你女朋友一起上课的次数 k 节课。那么,你去上课 的概率 P(B) = m / n你和你女朋友同时 上课的概率是 P(AB) = k / n; 当我发现 你在上课(我还没有发现你女朋友,她可能和她闺蜜坐一起),那么 你女朋友也在上课 的概率是 P(A | B) = k / m 。这个等式就是:

    P(A | B) = \frac{k}{m} = \frac{k / n}{m / n} = \frac{P(AB)}{P(B)}

    上面公式,写成乘法的形式,就是所谓的 乘法公式

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

    相同道理,还可以这么写:

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

    样本空间

    所谓样本,就是研究的对象,就是 结果;所谓空间,就是 范围。样本空间就是 结果的取值范围。比如我摇色子,摇出的结果的取值范围是 {1, 2, 3, 4, 5, 6},那么它的样本空间就 {1, 2, 3, 4, 5, 6} 。样本空间 用S表示

    S : \{1, 2, 3, 4, 5, 6\}

    事 件

    事件,就是发生了某一件事情。比如摇色子,发生的结果只能是 {1, 2, 3, 4, 5, 6},你总不能摇个7出来吧。你可以把 凡是摇到 1 的结果 称为 事件A_1 (也就是摇到1这件事发生了),凡是摇到 2 的结果称为 事件A_2 。当然,你也可以将摇到 {1, 2, 3} 的结果 称为事件A_1

    划 分

    划分,字面意思就是 划界限分类,给什么划分呢?就是给 结果划分。比如摇色子,发生的结果是 {1, 2, 3, 4, 5, 6},我们可以分成{1, 2, 3}、{4, 5, 6},也可以分为{1, 2}、{3, 4, 5, 6},还可以分为{1, 2, 3, 4, 5}、{6} 等等。上面的每一种分法,就是不同的 划分。上面说过,对发生结果起一个文绉绉的名称,叫做样本空间。所以,上面的每一种分法,就叫做 样本空间S的一个划分。你会发现,划分是 包含所有发生的结果 的,而且 不重复。比如:{1, 2, 3}、{4, 5} 这个 就不是一个划分,{1, 2, 3}、{3, 4, 5, 6} 也不是一个划分。

    全概率公式

    条件概率 是已知发生事件A的情况下,求发生事件B的概率。而 全概率,是 在已知事件 B_1B_2B_3 ... B_n 这n件事情都有可能发生,但还不知道这几件事中 哪一件事将要发生的情况下,求发生事件A的概率。比如:摇色子,连摇两次,摇第一次的结果,我知道摇到的肯定是 {1, 2, 3, 4, 5, 6} 中的一个,但我 还不知道 具体是哪一个数。再摇第二次,求第二次摇到 {7} 的概率是多少(当然,凭借常识你知道概率是0)?但是我们还是用公式算一下:

    P(7) = P(7 | 1)P(1) + P(7 | 2)P(2) + P(7 | 3)P(3) + P(7 | 4)P(4) + P(7 | 5)P(5) + P(7 | 6)P(6)

    其中 P(7 | 1)P(1) 的意思是:已知第一次 摇到1 的情况下,第二次摇到7的概率。把 六种情况 加起来,就是第二次摇到7的 概率 P(7) 了。上面讲解的是全概率的含义,全概率公式 如下:

    P(A) = P(A | B_1)P(B_1) + P(A | B_2)P(B_2) + \cdots + P(A | B_n)P(B_n)

    其中 B_1B_2\cdotsB_n一个划分 。拿上面的例子来说,这个划分也就是第一次摇色子所有可能的结果:{1}、{2}、{3}、{4}、{5}、{6}。当然,你也可以这么划分{1, 2, 3, 4, 5, 6},只划分为一个。上面只是举了个例子,说明实际中的含义而已。事实上,全概率公式是 可以推导 出来的,我们先看下面公式:

    \begin{array}{clcr} A = AS &= A(B_1 \cup B_2 \cup \cdots \cup B_n ) \\ &= AB_1 \cup AB_2 \cup \cdots \cup AB_n \end{array}

    咋一看,有点蒙(对于把概率论忘得差不多的程序员来说),上面的公式是什么呢?字面的意思就是:A和 B_1 同时发生,或者A和 B_2 同时发生,或者A和 B_n 同时发生,这些所有情况加起来,就是发生事件A的所有情况。 比如:上面摇色子的例子来说,S就是 第一次摇的所有结果,这些结果肯定在 {1, 2, 3, 4, 5, 6} 中产生,这是必然事件,S=1。事件A 就是第二次摇到 {7} 这件事。\cup 在这里表示或的意思,B_1发生,或B_2发生,或B_n 发生,这种称为 和事件。有了上面的解释,从 概率的角度,很容易得到下面的等式:

    \begin{array}{clcr} P(A) &= P(AB_1) + P(AB_2) + \cdots + P(AB_n) \\ &= P(A | B_1)P(B_1) + P(A | B_2)P(B_2) + \cdots + P(A | B_n)P(B_n) \end{array}

    这就是全概率公式的推导。这个公式有什么用?用途就是:比如,你想知道我是一个土豪的概率是多少,你肯定不能直接知道这个概率,而往往是从我的日常生活中慢慢统计,比如从我买东西的角度统计,P(我是土豪) = P(土豪 | 兰博基尼)P(兰博基尼) + ... + P(土豪 | 飞机)P(飞机)。最终,通过这些信息,间接算出我是土豪的概率。

    贝叶斯公式

    有了上面 条件概率全概率 这两个概念,条件概率公式如下:

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

    全概率公式如下:

    P(A) = P(A | B_1)P(B_1) + P(A | B_2)P(B_2) + \cdots + P(A | B_n)P(B_n)

    那么,就会有下面这个式子,这个式子就是 贝叶斯公式

    P(B_i | A) = \frac {P(B_i A)} {P(A)}

    = \frac {P(A | B_i)P(B_i)} {\sum_{j = 1}^n P(A | B_j)P(B_j) }

    其中,\sum_{j=1}^n 是求和符号,从下角标从1开始,一直加到n为止(n的值根据划分而定):

    \sum_{j = 1}^n P(A | B_j)P(B_j) = P(A | B_1)P(B_1) + P(A | B_2)P(B_2) + \cdots + P(A | B_n)P(B_n)

    贝叶斯公式是由 条件概率公式 和 全概率公式 推导出来的。这也导致了贝叶斯公式对应的现实意义 没有那么直观。这个公式在 机器学习里用的很多,我们应该要理解其现实生活中的含义。下面举个例子,就说一个女孩子可能喜欢你这件事。她喜欢你,有很多种原因:你 长得帅、长得高、比较幽默 等等。她喜欢你的概率:

    \begin{array}{clcr} P(\text{喜欢}) &= P(\text{喜欢 | 帅})P(\text{帅}) + \\ &= P(\text{喜欢 | 高})P(\text{高}) + \\ &= \cdots + \\ &= P(\text{喜欢 | 幽默})P(\text{幽默}) \end{array}

    通过上面的 各种原因 的分析,得到的结果 就是她喜欢你的概率。对比一下,你就会发现,这是一个全概率公式。这就是 由于什么样的原因,可能得到什么样的结果。高、帅、幽默这些因素,我们可以 根据经验 就可以知道,在影响一个女孩喜欢你这件事上,各个因素的影响比重有多大。比如,在这女孩心中,帅气重要一点,那么 P(喜欢 | 帅) 的值就大一些,而你的帅气程度决定了 P(帅) 的值。那么关于你的帅气对她的影响就是 P(喜欢 | 帅)P(帅) 的值。现在反过来,你 知道那个女孩有多喜欢你,你想知道她为什么喜欢你,你在想,是不是因为你长得比较帅,所以她喜欢你呢?你决定算一下这个概率:

    \begin{array}{clcr} P(\text{帅 | 喜欢}) &= \frac {P(\text{帅 喜欢}) } {P(\text{喜欢})} \\ &= \frac {P(\text{喜欢 | 帅})P(\text{帅})}{P(\text{喜欢| 帅})P(帅) + \cdots + P(\text{喜欢 | 幽默})P(\text{幽默})} \end{array}

    上面这个式子很好理解,上面说过,P(喜欢 | 帅)P(帅) 是你的 帅气 对这个女孩的影响,它是 P(喜欢) 的组成部分,也就是帅气是影响喜欢的原因之一。那么,用 P(喜欢 | 帅)P(帅) 除以 P(喜欢),就能知道帅气在所有导致喜欢的因素中 占的比重 是多大,这个比重 就是P(帅 | 喜欢)。对比一下,你会发现上面的式子就是贝叶斯公式。重新写一下:

    P(\text{帅 | 喜欢}) = \frac {P(\text{喜欢 | 帅})P(\text{帅})}{P(\text{喜欢})} = \frac{P(A | B_i)P(B_i)}{P(A)} = P(B_i | A)

    下面,就对上面这个公式进行说明:

    • 先验概率P(B_i) 帅气是天生的,和女孩子喜不喜欢你没有关系,它是根据我们的常识,知道你的帅气在你所有的优缺点中占的比重是多大,也就是 P(B_i) 是根据我们以前的经验知道的。正因为它是根据我们以前的经验得到的,所以它被叫做 B_i先验概率

    • 标准化常量P(A) 女孩子喜欢你的程度,你是通过某些途径知道的,比如女孩告诉你,她有多喜欢你,所以 P(A) 是已知的。你到底多帅还要根据经验分析一波,而 P(A) 这个值,你连分析都不用,女孩子直接就告诉你了,所以这个 P(A) 被称为 标准化常量。其实,P(A) 就是 A 的先验概率,只是它给出的方式不一样,直接告诉你一个值,相当于一个常量一样。

    • 后验概率P(B_i | A) 你是通过女孩告诉你,她有多么喜欢你以后,知道了P(喜欢)的值,才分析出帅气在所有影响喜欢的因素中占的比重,所以 P(B_i | A) 被称为 B_i后验概率

    • 似然度P(A | B_i) : 似然,是由 likelihood 这个单词直译过来的。文言文中,似,就是像,然,就是样子,似然就是像什么什么的样子。翻译得有 争议性,有人认为 翻译得不准确。likelihood 的意思,是可能性。P(A | B_i) 就是一个概率值而已,也就是可能性的大小,所以 似然度 可以理解为 概率值的大小。其实,P(A | B_i) 就是 A 的后验概率。

    所以贝叶斯公式可用文字表示为:

    \text{后验概率} = \frac{\text{似然度} \times \text{先验概率}}{\text{标准化常量}} = \frac{P(A | B_i)P(B_i)}{P(A)} = P(B_i | A)

    先验概率

    先验概率就是:

    根据以往经验和分析得到的概率。

    举例和说明,在上面的 贝叶斯公式 里已经讲过了,可以参考上面的说明。

    后验概率

    后验概率就是:

    某件事情发生了,引起这件事发生的原因很多,这件事情发生是由原因A引起的概率,这个概率就被称为 后验概率

    举例和说明,在上面的 贝叶斯公式 里已经讲过了,可以参考上面的说明。

    二、参考文章

    概率知识请参考:

    相关文章

      网友评论

        本文标题:附录A:机器学习基础之概率论和数理统计

        本文链接:https://www.haomeiwen.com/subject/wucubftx.html