一、条件概率
设有A、B两个事件,已知事件A发生的情况,事件B发生的概率称为条件概率:
P
(
B
∣
A
)
=
P
(
A
B
)
/
P
(
A
)
P(B|A) = P(AB) / P(A)
P(B∣A)=P(AB)/P(A)
P(AB)是AB两种事件同时发生的概率:
P
(
A
B
)
=
P
(
A
)
∗
P
(
B
∣
A
)
=
P
(
B
)
∗
P
(
A
∣
B
)
P(AB) = P(A) * P(B|A) = P(B) * P(A|B)
P(AB)=P(A)∗P(B∣A)=P(B)∗P(A∣B)
所以条件概率公式计算如下,如果AB没有交集,那么条件概率为0:
P
(
A
∣
B
)
=
P
(
A
)
∗
P
(
B
∣
A
)
/
P
(
B
)
P(A|B) = P(A) * P(B|A) / P(B)
P(A∣B)=P(A)∗P(B∣A)/P(B)
二、全概率
全概率公式就是在样本空间E中,有一个事件A,而样本空间被划分为多个子空间B1,B2,B3…….,对于每一个子空间Bi,发生A事件的概率为:
P
(
A
)
=
P
(
B
i
)
∗
P
(
A
∣
B
i
)
i
=
1
,
2
,
…
n
P(A) = P(Bi) * P(A|Bi) i = 1,2,…n
P(A)=P(Bi)∗P(A∣Bi)i=1,2,…n
那么整个样本空间E中,A事件发生的概率为:
P
(
A
)
=
∑
i
=
0
n
P
(
A
)
∗
P
(
A
∣
B
i
)
P(A) = \sum_{i=0}^n P(A) * P(A|Bi)
P(A)=i=0∑nP(A)∗P(A∣Bi)
全概率公式就是求一个事件在整个样本中发生的概率。
三、贝叶斯定理
贝叶斯定理是已知一个事件在整个样本空间中发生的概率后,求另一个事件发生的概率。比如在A事件发生的情况下,求属于Bi子空间的概率P(Bi|A):
P
(
B
i
∣
A
)
=
P
(
B
i
)
∗
P
(
A
∣
B
i
)
/
P
(
A
)
P(Bi|A) = P(Bi) * P(A|Bi) / P(A)
P(Bi∣A)=P(Bi)∗P(A∣Bi)/P(A)
由全概率公式,可得
P
(
B
i
∣
A
)
=
P
(
A
∣
B
i
)
∗
P
(
B
i
)
/
∑
j
=
0
n
P
(
A
)
∗
P
(
A
∣
B
j
)
P(Bi|A) = P(A|Bi) * P(Bi) / \sum_{j=0}^n P(A) * P(A|Bj)
P(Bi∣A)=P(A∣Bi)∗P(Bi)/j=0∑nP(A)∗P(A∣Bj)
Bi 常被视为导致试验结果A发生的”原因“,P(Bi)(i=1,2,…)表示各种原因发生的可能性大小,故称先验概率;P(Bi|A)(i=1,2…)则反映当试验产生了结果A之后,再对各种原因概率的新认识,故称后验概率。
四、朴素贝叶斯分类
朴素贝叶斯是一种十分简单的分类方法,其思想是:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
- 设x = {a1, a2, …, am}为一个待分类项,其中a1到am是它的特征属性
- 类别集合C={y1, y2, …, yn}
- 计算P(y1|x), P(y2|x), ……, P(yn|x)
- 若 P ( y k ∣ x ) = m a x ( P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , … … , P ( y n ∣ x ) ) P(yk|x) = max({P(y1|x), P(y2|x), ……, P(yn|x)}) P(yk∣x)=max(P(y1∣x),P(y2∣x),……,P(yn∣x)),则x属于yk
所以问题的关键是计算第三步中的条件概率,可以通过如下方式进行计算:
- 找到一个已知分类的待分类项集合作为训练集
- 统计得到在各类别下各个特征属性的条件概率估计,即$P(a1|y1), P(a2|y1), …P(am|y1); P(a1|y2), P(a2|y2), …P(am|y2); ……P(a1|yn), P(a2|yn), …P(am|yn); $
- 假设各个特征属性是条件独立的,根据贝叶斯定理可得
P ( y i ∣ x ) = P ( x ∣ y i ) ∗ P ( y i ) / P ( x ) P(yi|x) = P(x|yi) * P(yi) / P(x) P(yi∣x)=P(x∣yi)∗P(yi)/P(x)
P ( x ∣ y i ) = P ( y i ) ∏ j = 1 n P ( a j / y i ) P(x|yi) = P(yi)\prod_{j=1}^n P(aj/yi) P(x∣yi)=P(yi)j=1∏nP(aj/yi)
贝叶斯分类流程
所以,贝叶斯分类的流程下图所示:
可以看到,整个朴素贝叶斯分类可以分为三个阶段:
- 准备工作阶段。任务是为朴素贝叶斯分类做必要的准备,根据具体情况确定特征属性,并对每个特征属性进行适当划分,最后由人工对一部分待分类项进行分类,形成训练样本集。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。
- 分类器训练阶段。任务是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。
- 应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。
估计类别下特征属性划分的条件概率
计算各个划分的条件概率P(a|y)是朴素贝叶斯分类的关键性步骤,当特征属性为离散值时,只要很方便的统计训练样本中各个划分在每个类别中出现的频率即可用来估计P(a|y),下面重点讨论特征属性是连续值的情况。
当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:
因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。
Laplace校准
当P(a|y)=0时,即当某个类别下某个特征项划分没有出现时,连乘计算出来的概率为0,因此哪怕其他特征属性非常明显可以划入某一个类别,分类结果都会将它划入其他类别。为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”,在估计概率值的时候通常要进行平滑操作,常用“拉普拉斯修正”(Laplace correction)。
Laplace校准的思想非常简单,就是对没有类别下的所有划分计数都加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。