作者:vicky_siyu 致谢:小龙快跑jly, 巧儿、克力,Esther_or so,雨佳小和尚, 老实憨厚的叶子
本文是对贝叶斯分类器的初步理解,通过案例解释贝叶斯并对贝叶斯分类器的关系进一步分析和理解。本文只是在学习后进行了总结并加入了自己的理解,如有不妥之处,还望海涵,也希望大家多多指教,一起学习!
一、 贝叶斯三连问
贝叶斯分类器是什么?有什么用?怎么用?
为了更好地理解这个问题,我们先看一个案例:
案例(来源于西瓜书):[1]
编号 | 色泽 | 根蒂 | 敲声 | 纹理 | 脐部 | 触感 | 密度 | 含糖率 | 好瓜 |
---|---|---|---|---|---|---|---|---|---|
1 | 青绿 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.697 | 0.460 | 是 |
2 | 乌黑 | 蜷缩 | 沉闷 | 清晰 | 凹陷 | 硬滑 | 0.774 | 0.376 | 是 |
3 | 乌黑 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.634 | 0.264 | 是 |
4 | 青绿 | 蜷缩 | 沉闷 | 清晰 | 凹陷 | 硬滑 | 0.608 | 0.318 | 是 |
5 | 浅白 | 蜷缩 | 浊响 | 清晰 | 凹陷 | 硬滑 | 0.556 | 0.215 | 是 |
6 | 青绿 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 软粘 | 0.403 | 0.237 | 是 |
7 | 乌黑 | 稍蜷 | 浊响 | 稍糊 | 稍凹 | 软粘 | 0.481 | 0.149 | 是 |
8 | 乌黑 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 硬滑 | 0.437 | 0.211 | 是 |
9 | 乌黑 | 稍蜷 | 沉闷 | 稍糊 | 稍凹 | 硬滑 | 0.666 | 0.091 | 否 |
10 | 青绿 | 硬挺 | 清脆 | 清晰 | 平坦 | 软粘 | 0.243 | 0.267 | 否 |
11 | 浅白 | 硬挺 | 清脆 | 模糊 | 平坦 | 硬滑 | 0.245 | 0.057 | 否 |
12 | 浅白 | 蜷缩 | 浊响 | 模糊 | 平坦 | 软粘 | 0.343 | 0.099 | 否 |
13 | 青绿 | 稍蜷 | 浊响 | 稍糊 | 凹陷 | 硬滑 | 0.639 | 0.161 | 否 |
14 | 浅白 | 稍蜷 | 沉闷 | 稍糊 | 凹陷 | 硬滑 | 0.657 | 0.198 | 否 |
15 | 乌黑 | 稍蜷 | 浊响 | 清晰 | 稍凹 | 软粘 | 0.360 | 0.370 | 否 |
16 | 浅白 | 蜷缩 | 浊响 | 模糊 | 平坦 | 硬滑 | 0.593 | 0.042 | 否 |
17 | 青绿 | 蜷缩 | 沉闷 | 稍糊 | 稍凹 | 硬滑 | 0.719 | 0.103 | 否 |
判断一个具有特征:{色泽=青绿,根蒂=蜷缩,敲声=浊响,纹理=清晰,脐部=凹陷,触感=硬滑,密度=0.697,含糖率=0.460}的测试样例瓜是否为好瓜?
这个问题其实就是一个分类问题,而且是个二分类问题,是不是好瓜?分类的原理很简单,就是判断这个样例属于好瓜的概率和属于坏瓜的概率哪个更大,即后验概率P(c│x)哪个更大。
常见的分类方法有决策树、人工神经网络、支持向量机、贝叶斯分类器等。
(PS:各种分类方法的优缺点可参考[2])
这些分类方法主要分为两种模型,见下表: [3]
分类模型 | 判别式模型 | 生成式模型 |
---|---|---|
分类原理 | 直接对后验概率P(c│x)进行建模 | 对联合概率分布P(x,c)建模,之后由条件概率公式得出后验概率 |
相关算法 | 决策树、人工神经网络、支持向量机 | 贝叶斯分类器 |
简单说,贝叶斯分类器就是一种分类的方法,而且是一种基于贝叶斯原理,对联合概率分布p(x,c)建模,之后由条件概率公式得出后验概率的生成式模型的方法。(注: P ( x , c ) = P ( x │ c ) P ( c ) P(x,c)= P(x│c) P( c ) P(x,c)=P(x│c)P(c))
那怎么用呢?
首先,我们复习一下贝叶斯定理:
P ( c ∣ x ) = P ( x ∣ c ) P ( c ) P ( x ) P(c|x) = \frac{P(x|c)P(c)}{P(x)} P(c∣x)=P(x)P(x∣c)P(c)
P(c│x) | P(x│c) | P(c ) | P(x) |
---|---|---|---|
属性x属于类别c的概率 | 类别c中x属性出现的概率 | 某个类别发生的概率 | 属性x出现的概率 |
后验 | 似然 | 先验 | 证据因子 |
Ps. 似然函数 L ( x ; θ ) L(x;θ) L(x;θ)在形式上,其实就是样本的联合密度。
把 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3,…, x n x_n xn看作常数,而把待定参数 θ 0 θ_0 θ0, θ 1 θ_1 θ1,…, θ n θ_n θn看作 L 的自变量。对连续型总体X 和离散型随机变量X,样本的似然函数分别是概率密度和分布率的连乘形式。
贝叶斯分类器目的就是分类,即判断含有属性x的样本属于哪一类,也就是判断后验 P ( c │ x ) P(c│x) P(c│x)在不同的类别时概率的大小,后验概率越大说明所属的类别越有可能是正确的类别。因此,我们的目标就转化为了最大化后验概率,然后将后验概率最大的类别判定为该样本所属的类别。例如: m a x P ( c ∣ x ) = P ( c 2 ∣ x ) maxP(c|x) =P(c_2|x) maxP(c∣x)=P(c2∣x)则 x x x属于 c 2 c_2 c2。
对于同一个样本而言P(x)都是一样的,对分类结果没有什么影响,为了提高运行效率,我们在计算时可以不考虑证据因子P(x)。最大化后验概率便转化为了最大化似然与先验的乘积。则 P ( c ∣ x ) = P ( x ∣ c ) P ( c ) P ( x ) P(c|x) = \frac{P(x|c)P(c)}{P(x)} P(c∣x)=P(x)P(x∣c)P(c)在不考虑 P ( x ) P(x) P(x)后转化为: P ( c ∣ x ) = P ( x ∣ c ) P ( c ) P(c|x) = {P(x|c)P(c)} P(c∣x)=P(x∣c)P(c)
接下来的问题就是分别计算似然与先验,然后算一下乘积。
案例中的先验比较好计算,先验: P ( 好 瓜 = 是 ) = 8 / 17 ≈ 0.471 P ( 好 瓜 = 否 ) = 9 / 17 ≈ 0.529 P(好瓜=是)=8/17≈0.471 \\P(好瓜=否)=9/17≈0.529 P(好瓜=是)=8/17≈0.471P(好瓜=否)=9/17≈0.529
但是似然就有点麻烦了,样本有8个特征属性,但是这8个特征属性都要同时满足似然才不为0,在现实中其他案例里特征属性更多,维度更高,如果样本量还很少,计算似然就更麻烦了。所以为了简化计算,往往采用朴素贝叶斯分类器(Naive Bayes Classifiers, NBC)的方法,即假设各属性之间相互独立。则 m a x P ( x ∣ c ) P ( c ) maxP(x|c)P(c) maxP(x∣c)P(c)转化为 m a x ( P ( c ) ∏ i = 0 m P (