朴素贝叶斯分类
1、算法核心思想
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯(Naive Bayes)分类是贝叶斯分类中最简单,也是常见的一种分类方法。
朴素贝叶斯算法的核心思想是通过考虑特征概率来预测分类,即对于给出的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。
1.1 贝叶斯原理
在已知发生B条件下,发生A的概率为:
如果上述公式较抽象,可以将右边的分母移到左边,
则贝叶斯原理理解为:
即: 发生B,且发生A = 发生A,且发生B
1.2 原理详解
朴素贝叶斯模型是基于贝叶斯原理构建出来的类别判别模型
朴素贝叶斯模型原理如下:
已知样本表现为X特征,想知道它属于类别 k 的概率,套用贝叶斯原理可得到:
进一步,假设各特征之间相互独立,那么特征的概率可以拆成累积形式,如下:
朴素贝叶斯中的"朴素",指的就是"各特征间互相独立"这一条件
由于最终比较的是各个类别概率的大小,而每个类别的概率公式的分母是一样的
因此,最终只需取上述概率公式中的分子部分作为判别公式来进行结果比较即可
最终即可得到朴素贝叶斯的判别公式如下:
其中,(1)式是贝叶斯判别器,(2)、(3)式是朴素贝叶斯概率公式和判别公式
公式(2)、(3)右边的概率一般由历史数据估算得到,从而得到左边的概率值或判别值
说明:
有时我们希望模型输出每个类别的具体概率,理论上,只需按(2)中的概率公式就能得到各类别的概率
但实际中往往会发现各类别的概率之和不为一,这是因为实际中各个特征XiXi之间并不独立所造成的
因此,实际中如果需要输出概率,更一般的方法是直接将各类别的判别值Gk进行归一化,作为概率值
2、模型
在建模后,朴素贝叶斯模型长什么样呢?
由于朴素贝叶斯的对属于各类别的判别函数为:
那么,一个朴素贝叶斯判别模型可以由以下两个数据表示:
(1) 历史样本中,属于各类别的概率 P(属于类别k)P(属于类别k)
(2) 历史样本中,特征表现概率表 P(表现为特征xi∣已知属于类别k)P(表现为特征xi∣已知属于类别k)
也即最终建好的朴素贝叶斯模型就是两张表,如下:
1. 类别概率表:记录属于各个类别的概率
2. 一张特征概率表:记得各个特征,在类别k时表现为组别i的概率
备注:特征概率表实际是一组表,有多少个特征,就需要多少张特征概率表。在用历史数据估算出以上的类别概率表与特征概率表后,当进来一个特征X时,按判别公式计算样本属于各个类别时的判别值即可
3、实例讲解
3.1判别过程
朴素贝叶斯就是以历史数据作为依据,判断新样本属于各类别的概率
最后属于哪个类别的概率较大,就判为属于哪一类
设现有身高、体重与性别的历史数据如下
问题:现在来了个身高分组为3,体重分组为2的样本,求该样本的类别?
根据朴素贝叶斯的判别公式,具体判别过程如下:
1、估算各类别下特征表现的概率
P(身高=3|已知属于男) = 男样本中身高分组为3的个数/男样本个数 = 1/3
P(体重=2|已知属于男) = 男样本中体重分组为2的个数/男样本个数 = 1/3
P(身高=3|已知属于女) = 女样本中身高分组为3的个数/女样本个数 = 1/4
P(体重=2|已知属于女) = 女样本中体重分组为2的个数/女样本个数 = 2/4
2、估算属于各类别的先验概率(即类别占比)
P(属于男) = 3/7
P(属于女) = 4/7
3、计算样本属于各类别的判别值
属于男的判别值为:
P(属于男∣已知身高=3,体重=2)
=[P(身高=3∣属于男)∗P(体重=2∣属于男)]∗P(属于男)
=(1/3∗1/3)∗3/7=1/21
属于女的判别值为:
P(属于女∣已知身高=3,体重=2)
=[P(身高=3∣属于女)∗P(体重=2∣属于女)]∗P(属于女)
=(1/4∗2/4)∗4/7=1/14
由于女的判别值为1/14大于男的判别值为 1/21 ,因此,判断样本属于女
3.2建模过程
对于朴素贝叶斯模型,我们需要输出《类别概率表》和《特征概率表》
通过公式可计算得到:
1. 类别概率表:记录属于各个类别的概率
2. 特征概率表:记得各个特征,在类别k时表现为组别i的概率
设样本身高分组为3,体重分组为2,通过查表可算得:
G_男 = P_{身高特征表}(男, 3) * P_{体重特征表}(男, 2) * P_{类别表}(男)
= 1/3 * 1/3 * 3/7
=1/21
G_女 = P_{身高特征表}(女, 3) * P_{体重特征表}(女, 2) * P_{类别表}(女)
= 1/4 * 2/4 * 4/7
=1/14
由于1/14>1/21,可判断该样本为女