《统计学习方法》笔记(四)朴素贝叶斯法

前言

关于写作:

博主(暂且如此自称)是北京某高校的计算机系研究生在读,入行AI领域时间不久,正在努力进修。最近利用工作之余的时间正在学习李航博士的《统计学习方法》,一方面希望能够通过写作整理思路,另一方面,分享学习心得也希望可以和志同道合的小伙伴们共同探讨进步啦~

github传送门

GitHub - wyynevergiveup/Statistical-Learning-Method: 《统计学习方法》--李航 实现学习过程中的算法以加深理解

系列文章:

1.《统计学习方法》笔记(一) 统计学习及监督学习概论 - 简书

2.《统计学习方法》笔记(二)感知机模型 - 简书

3.《统计学习方法》笔记(三)K近邻法 - 简书

4.《统计学习方法》笔记(四)朴素贝叶斯法 - 简书

正文

4.1 朴素贝叶斯法的学习和分类

4.1.1 概述

朴素贝叶斯法是基于贝叶斯定理特征条件独立假设的分类方法。

方法整体分成两个主要步骤:

    1. 根据特征条件独立假设学习输入输出的联合概率分布;

    2. 基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

那么,什么是特征条件独立假设呢?贝叶斯定理?

朴素贝叶斯法中提到的特征条件独立假设,具体来说就是说用于分类的特征在类确定的条件下都是条件独立的。即,

                P(X=x|Y=c_k) = P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k) = \prod_{j=1}^nP(X^{(j)} = x^{(j)}|Y=c_k)   (1)

关于贝叶斯定理,这里只给出其基本公式和在朴素贝叶斯法中的应用。

贝叶斯定理基本公式:P(B_i|A) = \frac{P(A|B_i)P(B_i)}{\sum_{j=1}^n P(A|B_j)P(B_j)} (2)

在朴素贝叶斯法中的应用:P(Y=c_k|X=x) = \frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{k} P(X=x|Y=c_k)P(Y=c_k)} (3)

4.1.2 基本方法

4.1.2.1 数据集

设输入空间\pmb{x} \subseteq R^n 为n维向量的集合,输出空间为类标记集合\pmb{y} = \{ c_1, c_2, ..., c_K \}。输入为特征向量x \in \pmb{x},输出为类标记y\in \pmb{y}X是定义在输入空间\pmb{x}上的随机变量,Y是定义在输出空间\pmb{y}上的随机变量。P(X,Y)XY的联合概率分布。训练数据集

                                                                   T = \{ (x_1, y_1), (x_2, y_2),...,(x_N,y_N)\}

是由P(X,Y)独立同分布产生。

4.1.2.2 模型

朴素贝叶斯法属于生成模型,其实际要学习的是生成数据的机制,即P(X,Y)。因此,实际要学习的是以下两个先验概率分布和条件概率分布,联合概率分布由二者对应相乘累加后求得。

先验概率分布:P(Y=c_k), k=1,2,...,K

条件概率分布:P(X=x|Y=c_k) = P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k), k=1,2,...,K(4)

联合概率分布:P(X,Y)=\sum\nolimits_{k=1}^K P(X=x|Y=c_k)P(Y=c_k) (5)


先验概率分布往往通过统计的方法获得。

然而,条件概率分布包含了指数级数量的参数,其估计实际是不可行的。事实上,假设x^{(j)}可取值有S_j个,j=1,2,...,n, Y 可取值有K个,那么参数个数为K\prod_{j=1}^nS_j 。(这里的条件概率分布实际是离散分布列,待估的参数是每种情况下对应的概率值,因此待估的参数与所有可能出现的情况数量相同。)因此,朴素贝叶斯法对条件概率分布作了条件独立性的假设,由于这是一个较强的假设,“朴素”贝叶斯法也由此得名。具体地,条件独立假设是:

                P(X=x|Y=c_k) = P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k) = \prod_{j=1}^nP(X^{(j)} = x^{(j)}|Y=c_k)

由此,条件概率分布的参数量降至K\sum\nolimits_{j=1}^n S_j

4.1.3 后验概率最大化

朴素贝叶斯将样本实例预测为后验概率最大的类别。这实际上等价于期望风险最小化。

假设选择0-1损失函数:

                                                                L(Y, f(X))=\begin{cases}1, Y\neq f(X) \\0, Y = f(X)\end{cases}

式中f(X)是分类决策函数。这时,期望风险函数为

                                                                R_{exp}(f) = E[L(Y,f(X))]

期望是对联合分布P(X,Y)取的。由此取条件期望

                                                        R_{exp}(f) = E_X{\{ \sum_{k=1}^K [L(c_k,f(X))]P(c_k|X)\}}

其中,样本为X时,预测类别为预测为f(X),L(c_k,f(X))是样本真实类别y=c_k时的损失;P(c_k|X)y=c_k的条件概率。为了使期望风险最小化,只需对X=x逐个极小化,由此得到:

                                f(x)=arg min_{y\in \pmb{y}}\sum\nolimits_{k=1}^KL(c_k, y)P(c_k|X=x)

                                        = arg min_{y\in \pmb{y}}\sum\nolimits_{k=1}^KP(c_k\neq y|X=x)

                                        = arg min_{y\in \pmb{y}}[1-P(c=y|X=x)]

                                        = arg max_{y\in \pmb{y}}P(c=y|X=x) (*很关键!)

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:

                                f(x)=argmax_{c_k}P(c_k|X=x)    

即朴素贝叶斯法所采用的原理。

4.2 朴素贝叶斯法的参数估计(算法)

4.2.1 极大似然估计

在朴素贝叶斯法中,学习意味着估计P(Y=c_k)P (X^{(j)}=x^{(j)}|Y=c_k)。可以应用极大似然估计法估计相应的概率。

先验概率P(Y=c_k)的极大似然估计是:

                                        P(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)}{N},  k=1,2,...,K (6)

设第j个特征x^{(j)}的取值的集合为{\{ a_{j1}, a_{j2}, ...,a_{jS_j} \}},条件概率P(X^{(j)}=a_{jl}|Y=c_k)的极大似然估计是:

                                        P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i=c_k)} {\sum_{i=1}^NI(y_i = c_k) } (7)

                                        j=1,2,...,n; l=1,2,...,S_j; k=1,2,...K

式中,x_i^{(j)}是第i个样本的第j个特征;a_{jl}是第j个特征的第l个可能的取值;I为指示函数(括号内条件满足时函数值为1,反之为0)。

4.2.2 学习和分类算法

朴素贝叶斯算法

4.2.3 贝叶斯估计

用极大似然估计可能会出现所要估计的概率值为0的情况,这会影响后验概率的计算结果,使分类产生偏差。

首先,为什么会出现概率为0?其次,估计出的概率为0会对后验概率的计算产生怎样的影响?

由式(6)(7)可知,极大似然估计对先验概率和条件分布概率的估计实际是由数据集中出现的样本实例统计得来,而数据集在大多数情况下不可能覆盖所有可能出现的样本,因此,当某种情况的样本在数据集中未出现(其实现实世界存在这种样本,只是数量较少),极大似然估计得到的概率就是0。

举个简单的例子,假设数据集中没有满足Y=c_k条件下X^{(j)} = a_{jl}的样本,由式(7),P(X^{(j)}=a_{jl}|Y=c_k)的极大似然估计值为0。那么这会产生怎样的影响呢?

由式(1)(3)可知,最终的条件概率计算式是累乘的形式,其中一个因子为0会直接导致最终预测结果为0。这样一来,直接导致的结果是:对数据集的质量要求变高,即模型最终预测性能对数据集的质量是敏感的。训练集数据不充分的情况下,模型预测性能将受到显著影响。

为了缓解这一问题,朴素贝叶斯法中常使用的是贝叶斯估计法去做参数估计。

具体地,条件概率的贝叶斯估计是:

                                        P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i=c_k) + \lambda } {\sum_{i=1}^NI(y_i = c_k)+ S_j\lambda } (8)

式中\lambda \geq 0。等价于在随机变量各个取值的频数上赋予了一个正数\lambda 。当\lambda =0时就是极大似然估计。常取\lambda =1,这时称为拉普拉斯平滑。显然对任何l=1,2,...,S_j, k=1,2,...,K,,有

                                        P(X^{(j)}=a_{jl}|Y=c_k) >0

                                        \sum\nolimits_{l=1}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1

确保式(8)确实为一种概率分布。同样,先验概率的贝叶斯估计是:

                                        P(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)+\lambda }{N+K\lambda } (9)

4.3 最大似然估计和贝叶斯估计的推导过程

4.3.1 最大似然估计

简单来说,最大似然估计就是根据已有样本,估计出分布中参数最有可能的取值(最大似然)。具体的方法介绍可自行百度,这里给出先验概率和最大似然概率最大似然估计的推导过程。(忽略我丑爆的字体...)


基本变量声明

1.先验概率推导过程:

先验概率

2.条件概率推导过程:

条件概率

4.3.2 贝叶斯估计

贝叶斯估计与最大似然估计最大的不同就在于,贝叶斯估计将参数也视作随机变量。而最大似然估计将参数视作待估的定值,由观测到的样本去估计参数。

这里只给出条件概率的贝叶斯估计推导过程,先验概率比较简单,大家有兴趣可以参考先验概率的最大似然估计和条件概率的贝叶斯估计自行尝试推导。


条件概率
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342