[机器学习] 贝叶斯分类器2

贝叶斯的先导知识,请戳

贝叶斯分类器2

贝叶斯决策论

贝叶斯决策论是根据我们已知的一些概率信息误判的损失来选择最优的类别。

  • 什么是已知的概率信息?
    举一个贝叶斯先导知识里的例子:设有外形完全相同的两个箱子,甲箱中有99个白球和一个黑球,乙箱有99黑球和一个白球。今随机抽取一箱,并从中随机抽取一球,结果取得白球,问这球是从哪个箱子中取出的?
    那么甲箱中抽取白球的概率99%,乙箱中抽取白球的概率是1%就是我们已知的概率。
  • 误判的损失
    误判的损失 λ i j 通常为
    λ i j = { 0 , i f ( i = j ) 1 , o t h e r w i s e   v a l u e s

    也就是如果正确分类,损失为0, 错误分类,损失为1。

即设有 N 种可能的类别标记, 即 γ = c 1 , c 2 . . . , c N , λ i j 是将一个真实标记为 c j 的样本误分类为 c i 所产生的损失。基于后验概率 P ( c i | x ) 可获得将 x 分类为 c i 所产生的期望损失,即样本 x 上的 “条件风险” 。

R ( c i | x ) = j = 1 N λ i j P ( c j | x )

我们当前的任务是寻找一个准则,让条件风险最小。那么显然,如果可以正确分类,条件风险会达到最小。
R ( c | x ) = 1 P ( c | x )

P ( c | x ) 是正确分类的可能性,那么 1 P ( c | x ) 就是分类到错误的分类的可能性,错误分类的 λ 为1,所以结论如上。

我们的目的是让条件风险最小,而此时可以转化成让 p ( c | x ) 最大。

由于要让 p ( c | x ) 最大,那么就要用到极大似然估计。

我们先假定其具有某种确定的概率分布形式,再基于训练样本的概率对概率分布的参数进行估计。具体可参考贝叶斯先导知识里的极大似然估计。

朴素贝叶斯分类器采用了 “属性条件独立性假设” , 对于已知类型,假设所有属性之间相互独立。换言之,假设每个属性独立地对分类结果产生影响。

基于 ”属性条件独立性假设“ ,下式成立。

p ( c | x ) = P ( c ) P ( x | c ) P ( x ) = P ( c ) P ( x ) i = 1 d P ( x i | c )

其中 d 为属性数目, x i x 在第 i 个属性上的取值。

由于对所有类型来说 P ( x ) 相同,因此我们的目标变为最大化下式

P ( c ) i = 1 d P ( x i | c )

显然,朴素贝叶斯分类器的训练过程就是基于训练集 D 来估计类先验概率 P(c) ,并为每个属性估计条件概率 P ( x i | c ) .

D c 表示训练集 D 中第 c 类样本组成的集合,若有充足的独立同分布样本,则很容易的估计出类先验概率

P ( c ) = | D c | | D |

对于离散属性而言,令 D c , x i 表示 D c 中第 i 个属性上取值为 x i 的样本组成的集合,则条件概率 P ( x i | c ) 可估计为

P ( x i | c ) = | D c , x i | | D c |

连续属性而言,可以考虑概率密度函数,假定 P ( x i | c ) ~ N ( μ c , i , σ c , i 2 ) , 其中 μ c , i σ c , i 2 分别是第 c 类样本在第 i 个属性上取值的均值和方差,则有

P ( x i | c ) = 1 2 π σ c , i e x p ( ( x i μ c , i ) 2 σ c , i 2 )

具体实例请参考代码

需要注意,若某个属性值在训练集中没有和某个类同时出现,则直接基于上述公式带入会出现问题,因为这个属性在这个类里的值是0。因此无论该样本的其它属性是什么,在连乘的过程中都会使整体的值为0。

为了避免这个问题,常用 ”拉普拉斯修正“。 具体的说,令 N 表示训练集 D 中可能的类别数, N i 表示第 i 个属性可能出现的取值数,则

P ( c ) = | D c | + 1 | D | + N

P ( x i | c ) = | D c , x i | + 1 | D c | + N i

猜你喜欢

转载自blog.csdn.net/siyue0211/article/details/80470681