1 朴素贝叶斯法
- 典型的生成学习方法。
- 利用训练数据学习 P ( X ∣ Y ) P(X|Y) P(X∣Y)和 P ( Y ) P(Y) P(Y)的概率估计,从而得到联合概率分布: P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y)
- 概率估计方法
- 极大似然估计(见3(2)先验概率及条件概率的计算)
- 贝叶斯估计
- 用极大似然估计可能会出现所要估计的概率值为0 的情况。这时会影响到后验概率的计算结果,使分类产生偏差解决这一问题的方法是采用贝叶斯估计
- 等价于在随机变量各个取值的频数上赋于一个正数 λ \lambda λ。
- 当 λ = 0 \lambda=0 λ=0时就是极大似然估计;当 λ = 1 \lambda=1 λ=1时, 这时称为拉普拉斯平滑。
2 朴素贝叶斯法的基本假设
- 条件独立性假设:
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( 2 ) = x ( 2 ) , . . . , X ( n ) = x ( n ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},...,X^{(n)}=x^{(n)}|Y=c_k)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) P(X=x∣Y=ck)=P(X(1)=x(1),X(2)=x(2),...,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
- 这是一个较强的假设,由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现,其缺点是分类的性能不一定很高。
3 朴素贝叶斯的学习与分类算法
-
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2}),...(x_{N},y_{N})\} T={(x1,y1),(x2,y2),...(xN,yN)},
- 其中 x i = ( x i ( 1 ) , x i ( 2 ) , . . . x i ( j ) , . . . , x i ( n ) ) T x_i=(x_i^{(1)},x_i^{(2)},...x_i^{(j)},...,x_i^{(n)})^T xi=(xi(1),xi(2),...xi(j),...,xi(n))T,
- x i ( j ) x_i^{(j)} xi(j)是第 i i i个样本的第 j j j个特征, x i ( j ) ∈ { a j 1 , a j 2 , . . . , a j l , . . . , a j S j } x_i^{(j)}\in\{a_{j1},a_{j2},...,a_{jl},...,a_{jS_j}\} xi(j)∈{aj1,aj2,...,ajl,...,ajSj},
- a j l a_{jl} ajl是第 j j j个特征可能取值的第 l l l个值, j = 1 , 2 , . . . , n j=1,2,...,n j=1,2,...,n; l = 1 , 2 , . . . , S j l=1,2,...,S_j l=1,2,...,Sj;
- y i ∈ { c 1 , c 2 , . . , c K } y_i\in\{c_1,c_2,..,c_K\} yi∈{c1,c2,..,cK};实例 x x x;
-
输出:实例 x x x的分类 y y y。
(1)计算先验概率及条件概率 → \to → (极大似然估计)
P ( Y = c k ) = ∑ i = 1 N I ( y i = c K ) N , k = 1 , 2 , . . . , K P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_K)}{N},k=1,2,...,K P(Y=ck)=N∑i=1NI(yi=cK),k=1,2,...,K
P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( X ( j ) = a j l , y i = c K ) ∑ i = 1 N I ( y i = c K ) P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(X^{(j)}=a_{jl},y_i=c_K)}{\sum_{i=1}^NI(y_i=c_K)} P(X(j)=ajl∣Y=ck)=∑i=1NI(yi=cK)∑i=1NI(X(j)=ajl,yi=cK), k = 1 , 2 , . . . , K ; j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j k=1,2,...,K; j=1,2,...,n;l=1,2,...,S_j k=1,2,...,K;j=1,2,...,n;l=1,2,...,Sj
(2)对于给定的实例 x = ( x ( 1 ) , x ( 2 ) , . . . x ( j ) , . . . , x ( n ) ) T x=(x^{(1)},x^{(2)},...x^{(j)},...,x^{(n)})^T x=(x(1),x(2),...x(j),...,x(n))T,计算
P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , . . . , K P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),k=1,2,...,K P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck),k=1,2,...,K
(3)确定实例 x x x的类
y = arg m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , . . . , K y=\arg max_{c_k}P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),k=1,2,...,K y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck),k=1,2,...,K
拓展
例如 函数 F ( x , y ) F(x,y) F(x,y):
arg m i n x F ( x , y ) \arg min_x F(x,y) argminxF(x,y)就是指当 F ( x , y ) F(x,y) F(x,y)取得最小值时,变量 x x x的取值;
arg m a x y F ( x , y ) \arg max_y F(x,y) argmaxyF(x,y)就是指当 F ( x , y ) F(x,y) F(x,y)取得最大值时,变量 y y y的取值。