朴素贝叶斯法

朴素贝叶斯 ( N a i v e (Naive (Naive B a y e s ) Bayes) Bayes)

朴素贝叶斯法的学习和分类

基本方法

​ 设输入空间 χ ⊆ R n \chi \subseteq R^n χRn n n n维向量的集合,输出空间为类标记集合 Y = { c 1 , c 2 , c K } Y = \{c_1,c_2,c_K\} Y={c1,c2,cK}。输入为特征向量 x ∈ χ x\in \chi xχ ,输出为类标记 y ∈ Y y\in Y yYXY是定义在输入空间 χ \chi χ和输出空间 Y Y Y上的随机变量。 P ( P( P(X,Y ) ) ),是XY的联合概率分布。训练数据集为:
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)}
是由 P ( P( P(X,Y ) ) )独立同分布产生。

贝叶斯公式

​ 设XY是定义在输入空间 χ \chi χ和输出空间 Y Y Y上的随机变量,则如下贝叶斯公式有:
P ( Y = c k ∣ X = x ) = P ( Y = c k ) P ( X = x ∣ Y = c k ) P ( X = x ) P(Y=c_k|X=x) = \frac{P(Y=c_k)P(X=x|Y=c_k)}{P(X=x)} P(Y=ckX=x)=P(X=x)P(Y=ck)P(X=xY=ck)
X n n n维向量,则上列式子可以写成:
P ( Y = c k ∣ X = x ) = P ( Y = c k ) P ( X ( 1 ) = x ( 1 ) , X ( 1 ) = x ( 1 ) , ⋅ ⋅ ⋅ , X ( n ) = x ( n ) ∣ Y = c k ) P ( X ( 1 ) = x ( 1 ) , X ( 1 ) = x ( 1 ) , ⋅ ⋅ ⋅ , X ( n ) = x ( n ) ) P(Y=c_k|X=x) = \frac{P(Y=c_k)P(X^{(1)}=x^{(1)},X^{(1)}=x^{(1)},···,X^{(n)}=x^{(n)}|Y=c_k)}{P(X^{(1)}=x^{(1)},X^{(1)}=x^{(1)},···,X^{(n)}=x^{(n)})} P(Y=ckX=x)=P(X(1)=x(1),X(1)=x(1),,X(n)=x(n))P(Y=ck)P(X(1)=x(1),X(1)=x(1),,X(n)=x(n)Y=ck)
X(j)表示X的第j分量

朴素贝叶斯基本假设

​ 假定输入的 n n n维特征向量每个维度上的取值相互独立,也即:
P ( X = x ) = P ( X ( 1 ) = x ( 1 ) , X ( 1 ) = x ( 1 ) , ⋅ ⋅ ⋅ , X ( n ) = x ( n ) ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ) P(X=x)=P(X^{(1)}=x^{(1)},X^{(1)}=x^{(1)},···,X^{(n)}=x^{(n)})= \prod_{j=1}^nP(X^{(j)}=x^{(j)}) P(X=x)=P(X(1)=x(1),X(1)=x(1),,X(n)=x(n))=j=1nP(X(j)=x(j))
​ 所以上述贝叶斯公式可以改写为:
P ( Y = c k ∣ X = x ) = P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ) P(Y=c_k|X=x) = \frac{P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)}{\prod_{j=1}^nP(X^{(j)}=x^{(j)})} P(Y=ckX=x)=j=1nP(X(j)=x(j))P(Y=ck)j=1nP(X(j)=x(j)Y=ck)
​ 习惯上,我们把其中的 P ( Y = c k ) P(Y=c_k) P(Y=ck)称为先验概率,将 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x)称之为后验概率

朴素贝叶斯分类器

​ 可以根据上述的公式
P ( Y = c k ∣ X = x ) = P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ) P(Y=c_k|X=x) = \frac{P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)}{\prod_{j=1}^nP(X^{(j)}=x^{(j)})} P(Y=ckX=x)=j=1nP(X(j)=x(j))P(Y=ck)j=1nP(X(j)=x(j)Y=ck)
​ 来推算给定一个数据 X = x X=x X=x,他属于某个类 Y = c k Y=c_k Y=ck的概率是 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x),这个概率可以根据训练集训练出来的模型给出。

损失函数最小

​ 上面谈到对于给定的数据 X = x X=x X=x,要判断它属于的类别 Y = c k Y=c_k Y=ck,我们可以算出属于每个类别的概率,再选出概率最大的那个类别,我们有理由认为这个概率最大的类别就是它所属的类别**(极大似然法),而且对于给定的训练集分母是一个常数,只需要比较分子大小即可。接下来用损失函数最小**来证明这个结论:

​ 假定选定0-1损失函数:
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X)) = \left\{ \begin{aligned} &1, &Y\neq f(X) \\ &0, &Y = f(X) \\ \end{aligned} \right. L(Y,f(X))={1,0,Y=f(X)Y=f(X)
​ 期望风险函数为:
R e x p ( f ) = E [ L ( Y , f ( X ) ) ] R_{exp}(f)=E[L(Y,f(X))] Rexp(f)=E[L(Y,f(X))]
XY有联合分布 P ( P( P(X,Y ) ) ),所以根据取条件期望
E [ L ( Y , f ( X ) ) ] = E χ ∑ k = 1 K L ( c K , y ) P ( c k ∣ X ) E[L(Y,f(X))] = E_\chi\sum_{k=1}^KL(c_K,y)P(c_k|X)\\ E[L(Y,f(X))]=Eχk=1KL(cK,y)P(ckX)

​ 为了使得期望风险最小化,只需要对 X = x X=x X=x逐个极小化,由此可以得到:
f ( x ) = a r g   m i n y ∈ Y ∑ k = 1 K L ( c K , y ) P ( c k ∣ X = x ) = a r g   m i n y ∈ Y ∑ k = 1 K P ( y ≠ c k ∣ X = x ) = a r g   m a x y ∈ Y ∑ k = 1 K P ( y = c k ∣ X = x ) \begin{aligned} f(x) & = arg \ min_{y\in Y}\sum_{k=1}^KL(c_K,y)P(c_k|X=x)\\ & = arg \ min_{y\in Y}\sum_{k=1}^KP(y\neq c_k|X=x)\\ & = arg \ max_{y\in Y} \sum_{k=1}^KP(y= c_k|X=x)\\ \end{aligned} f(x)=arg minyYk=1KL(cK,y)P(ckX=x)=arg minyYk=1KP(y=ckX=x)=arg maxyYk=1KP(y=ckX=x)
​ 所以损失函数极小化最后等价于后验概率最大化。

朴素贝叶斯法的参数估计

训练集极大似然估计

​ 知道了应该利用训练集中的某些概率来对X进行分类,接下来看一下怎么利用训练集:

先验概率
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)}{N} P(Y=ck)=Ni=1NI(yi=ck)
​ 也就是训练集中 Y = c k Y=c_k Y=ck出现的频率(视作概率,可以通过极大似然估计得出)

条件概率:
P ( X ( j ) = x ( j ) ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = x ( j ) , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^{(j)}=x^{(j)}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=x^{(j)},y_i=c_k)}{\sum_{i=1}^N I(y_i=c_k)} P(X(j)=x(j)Y=ck)=i=1NI(yi=ck)i=1NI(xi(j)=x(j),yi=ck)
​ 也就是 y i = c k y_i=c_k yi=ck中出现 x i ( j ) = x ( j ) x_i^{(j)}=x^{(j)} xi(j)=x(j)的频率(视为概率,可以通过极大似然估计得出)

学习分类算法

​ 输入:训练数据 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 ( n ) ) x_i = (x_i^{(1)},x_i^{(2)},···,x_i^{(n)}) xi=(xi(1),xi(2),,xi(n)) n n n维向量, x i ( j ) ∈ { a j 1 , a j 2 . ⋅ ⋅ ⋅ , a j L } x_i^{(j)}\in \{a_{j1},a_{j2}.···,a_{jL}\} xi(j){aj1,aj2.,ajL}(第 j j j个维度有 L L L个取值), 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. 计算先验概率以及条件概率:
    P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)}{N} P(Y=ck)=Ni=1NI(yi=ck)

    P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( 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_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^N I(y_i=c_k)} P(X(j)=ajlY=ck)=i=1NI(yi=ck)i=1NI(xi(j)=ajl,yi=ck)

  2. 对于给定的实例 x = { x ( 1 ) , x ( 2 ) , ⋅ ⋅ ⋅ , x ( n ) } x=\{x^{(1)},x^{(2)},···,x^{(n)}\} x={x(1),x(2),,x(n)},计算:
    P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k) P(Y=ck)j=1nP(X(j)=x(j)Y=ck)

​ 3.确定实例 x x x的类别:
y = a r g   m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y = {arg\ max}_{c_k}P(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k) y=arg maxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)
eg: 给定一个表格确定 x = ( 2 , S ) x=(2,S) x=(2,S)所属的类,表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)对应的取值集合为 A 1 = { 1 , 2 , 3 , 4 } , A 2 = { S , M , L } A_1 = \{1,2,3,4\},A_2 = \{S,M,L\} A1={1,2,3,4},A2={S,M,L} Y ∈ { − 1 , 1 } Y\in\{-1,1\} Y{1,1}

123456789101112131415
X ( 1 ) X^{(1)} X(1)111112222233333
X ( 2 ) X^{(2)} X(2)SMMSSSMMLLLMMLL
Y Y Y-1-1111-1-1-1111111-1

根据上列的算法可以得出:

P ( Y = 1 ) = 9 15 , P ( Y = − 1 ) = 6 15 P(Y=1)=\frac{9}{15},P(Y=-1)=\frac{6}{15} P(Y=1)=159,P(Y=1)=156

P ( X ( 1 ) = 1 ∣ Y = 1 ) = 2 9 , P ( X ( 1 ) = 2 ∣ Y = 1 ) = 3 9 , P ( X ( 1 ) = 3 ∣ Y = 1 ) = 4 9 , P ( X ( 1 ) = 4 ∣ Y = 1 ) = 0 P(X^{(1)}=1|Y=1)=\frac{2}{9} , P(X^{(1)}=2|Y=1)=\frac{3}{9},P(X^{(1)}=3|Y=1)=\frac{4}{9},P(X^{(1)}=4|Y=1)=0 P(X(1)=1Y=1)=92,P(X(1)=2Y=1)=93,P(X(1)=3Y=1)=94,P(X(1)=4Y=1)=0

P ( X ( 2 ) = S ∣ Y = 1 ) = 1 9 , P ( X ( 2 ) = M ∣ Y = 1 ) = 4 9 , P ( X ( 2 ) = L ∣ Y = 1 ) = 4 9 P(X^{(2)}=S|Y=1)=\frac{1}{9} , P(X^{(2)}=M|Y=1)=\frac{4}{9},P(X^{(2)}=L|Y=1)=\frac{4}{9} P(X(2)=SY=1)=91,P(X(2)=MY=1)=94,P(X(2)=LY=1)=94

P ( X ( 1 ) = 1 ∣ Y = − 1 ) = 3 6 , P ( X ( 1 ) = 2 ∣ Y = − 1 ) = 2 6 , P ( X ( 1 ) = 3 ∣ Y = − 1 ) = 1 6 , P ( X ( 1 ) = 4 ∣ Y = − 1 ) = 0 P(X^{(1)}=1|Y=-1)=\frac{3}{6} , P(X^{(1)}=2|Y=-1)=\frac{2}{6},P(X^{(1)}=3|Y=-1)=\frac{1}{6},P(X^{(1)}=4|Y=-1)=0 P(X(1)=1Y=1)=63,P(X(1)=2Y=1)=62,P(X(1)=3Y=1)=61,P(X(1)=4Y=1)=0

P ( X ( 2 ) = S ∣ Y = − 1 ) = 3 6 , P ( X ( 2 ) = M ∣ Y = − 1 ) = 2 6 , P ( X ( 2 ) = L ∣ Y = − 1 ) = 1 6 P(X^{(2)}=S|Y=-1)=\frac{3}{6} , P(X^{(2)}=M|Y=-1)=\frac{2}{6},P(X^{(2)}=L|Y=-1)=\frac{1}{6} P(X(2)=SY=1)=63,P(X(2)=MY=1)=62,P(X(2)=LY=1)=61

对于给定的 x = ( 2 , S ) x=(2,S) x=(2,S)

P ( Y = 1 ∣ x ) = 9 15 3 9 1 9 = 1 45 P(Y=1|x)=\frac{9}{15}\frac{3}{9}\frac{1}{9}=\frac{1}{45} P(Y=1x)=1599391=451

P ( Y = − 1 ∣ x ) = 6 15 2 6 3 6 = 1 15 P(Y=-1|x)=\frac{6}{15}\frac{2}{6}\frac{3}{6}=\frac{1}{15} P(Y=1x)=1566263=151

所以 x x x属于类别 y = − 1 y=-1 y=1的可能性更高,输出-1

存在的问题

​ 假如给定一个实例 x = { 4 , S } x = \{4,S\} x={4,S},那 x x x怎么分类呢?可以看到表中没有 X ( 1 ) = 4 X^{(1)}=4 X(1)=4 的样本,所以可能会因为训练集不够多引起的概率为0的情况,这个会影响到后验概率从而影响分类,为了避免这个问题我们一般采用贝叶斯估计
P λ ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N [ I ( x i ( j ) = a j l , y i = c k ) + λ ] ∑ i = 1 N I ( y i = c k ) + S j λ   ( λ ≥ 0 ) P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum_{i=1}^N[I(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda]}{\sum_{i=1}^N I(y_i = c_k)+S_j\lambda} \ (\lambda ≥0) Pλ(X(j)=ajlY=ck)=i=1NI(yi=ck)+Sjλi=1N[I(xi(j)=ajl,yi=ck)+λ] (λ0)
​ 相当于在随机变量各个取值的频数上加一个正数 λ \lambda λ,为了每个维度和仍然为1,取 S j S_j Sj为每个维度取值个数,则整体相对于极大似然估计,分母增加了 N S j λ NS_j\lambda NSjλ,而分子对维度 j j j,对某一个 l l l,分子增加 N λ N\lambda Nλ,而一共有 L = S j L=S_j L=Sj个取值,所以分子也增加 N S j λ NS_j\lambda NSjλ,总体和仍然为0,只不过避免了条件概率以及先验概率出现为0的情况。

​ 特别的当 λ = 1 \lambda = 1 λ=1时,这时称之为拉普拉斯平滑,这也是我们最常用到的 λ \lambda λ的取值。

​ 类似的,为了保证先验概率和为1,对先验概率也进行处理:
P λ ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P_\lambda(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda} Pλ(Y=ck)=N+Kλi=1NI(yi=ck)+λ
​ 其中, K K K Y Y Y取值个数。

再来一次

​ 根据上述问题的改进,用贝叶斯估计我们可以得到上述训练集的先验概率条件概率

P ( Y = 1 ) = 10 17 , P ( Y = − 1 ) = 7 17 P(Y=1)=\frac{10}{17},P(Y=-1)=\frac{7}{17} P(Y=1)=1710,P(Y=1)=177

P ( X ( 1 ) = 1 ∣ Y = 1 ) = 3 13 , P ( X ( 1 ) = 2 ∣ Y = 1 ) = 4 13 , P ( X ( 1 ) = 3 ∣ Y = 1 ) = 5 13 , P ( X ( 1 ) = 4 ∣ Y = 1 ) = 1 13 P(X^{(1)}=1|Y=1)=\frac{3}{13} , P(X^{(1)}=2|Y=1)=\frac{4}{13},P(X^{(1)}=3|Y=1)=\frac{5}{13},P(X^{(1)}=4|Y=1)=\frac{1}{13} P(X(1)=1Y=1)=133,P(X(1)=2Y=1)=134,P(X(1)=3Y=1)=135,P(X(1)=4Y=1)=131

P ( X ( 2 ) = S ∣ Y = 1 ) = 2 12 , P ( X ( 2 ) = M ∣ Y = 1 ) = 5 12 , P ( X ( 2 ) = L ∣ Y = 1 ) = 5 12 P(X^{(2)}=S|Y=1)=\frac{2}{12} , P(X^{(2)}=M|Y=1)=\frac{5}{12},P(X^{(2)}=L|Y=1)=\frac{5}{12} P(X(2)=SY=1)=122,P(X(2)=MY=1)=125,P(X(2)=LY=1)=125

P ( X ( 1 ) = 1 ∣ Y = − 1 ) = 4 10 , P ( X ( 1 ) = 2 ∣ Y = − 1 ) = 3 10 , P ( X ( 1 ) = 3 ∣ Y = − 1 ) = 2 10 , P ( X ( 1 ) = 4 ∣ Y = − 1 ) = 1 10 P(X^{(1)}=1|Y=-1)=\frac{4}{10} , P(X^{(1)}=2|Y=-1)=\frac{3}{10},P(X^{(1)}=3|Y=-1)=\frac{2}{10},P(X^{(1)}=4|Y=-1)=\frac{1}{10} P(X(1)=1Y=1)=104,P(X(1)=2Y=1)=103,P(X(1)=3Y=1)=102,P(X(1)=4Y=1)=101

P ( X ( 2 ) = S ∣ Y = − 1 ) = 4 9 , P ( X ( 2 ) = M ∣ Y = − 1 ) = 3 9 , P ( X ( 2 ) = L ∣ Y = − 1 ) = 2 9 P(X^{(2)}=S|Y=-1)=\frac{4}{9} , P(X^{(2)}=M|Y=-1)=\frac{3}{9},P(X^{(2)}=L|Y=-1)=\frac{2}{9} P(X(2)=SY=1)=94,P(X(2)=MY=1)=93,P(X(2)=LY=1)=92

​ 对于给定的实例 x = ( 2 , S ) x=(2,S) x=(2,S):

P ( Y = 1 ∣ x ) = 10 17 4 13 2 12 = 20 663 P(Y=1|x)=\frac{10}{17}\frac{4}{13}\frac{2}{12}=\frac{20}{663} P(Y=1x)=1710134122=66320

P ( Y = − 1 ∣ x ) = 7 17 3 10 4 9 = 14 238 P(Y=-1|x)=\frac{7}{17}\frac{3}{10}\frac{4}{9}=\frac{14}{238} P(Y=1x)=17710394=23814

​ 所以 x x x还是属于 y = − 1 y=-1 y=1的类别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值