修炼武功——朴素贝叶斯

    技术2025-06-01  19

    朴素贝叶斯

    是一种基于贝叶斯定理 和 特征条件独立假设 的分类方法,属于生成模型。

    知识背景

    贝叶斯定理

    P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) ∑ j = 1 n P ( B j ) P ( A ∣ B j ) P(B_i|A) = \frac{P(B_i)P(A|B_i)}{\sum^{n}_{j=1}P(B_j)P(A|B_j)} P(BiA)=j=1nP(Bj)P(ABj)P(Bi)P(ABi)

    “贝叶斯定理描述了当你不能准确知悉一个事物的本质时,你可以依靠与事物特定本质相关的事件出现的多少去判断其本质属性的概率。 它给出了已知先验知识下事件的后验概率。”

    特征条件独立假设

    说明用于分类的特征在类确定的情况下是相互独立的

    P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( a ) = x ( a ) ) ∣ Y = c k ) , k = 1 , 2 , . . . , K P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(a)}=x^{(a)})|Y=c_k),k=1,2,...,K P(X=xY=ck)=P(X(1)=x(1),...,X(a)=x(a))Y=ck),k=1,2,...,K

    = ∏ j = 1 a P ( X ( j ) = x ( j ) ∣ Y = c k ) =\prod_{j=1}^{a} P(X^{(j)}=x^{(j)}|Y=c_k) =j=1aP(X(j)=x(j)Y=ck)

    生成模型&判别模型

    对于四个样本 s 1 , s 2 , s 3 , s 4 s_1,s_2,s_3,s_4 s1,s2,s3,s4,特征 X X X和类别 Y Y Y如下所示

    xy s 1 s_1 s100 s 2 s_2 s200 s 3 s_3 s310 s 4 s_4 s411

    生成模型概率分布如下表格:

    y=0y=1X=0 1 2 \frac{1}{2} 210X=1 1 4 \frac{1}{4} 41 1 4 \frac{1}{4} 41

    ∑ P ( X , Y ) = 1 \sum P(X,Y)=1 P(X,Y)=1

    P ( X , Y ) P(X,Y) P(X,Y)用以分类

    利用训练数据得到以上 P ( X , Y ) P(X,Y) P(X,Y)后,若想知道 X = 0 X = 0 X=0属于哪一类别则比较 P ( Y = 0 ∣ X = 0 ) = P ( X = 0 , Y = 0 ) P ( X = 0 , Y = 0 ) + P ( X = 0 , Y = 1 ) = 1 2 P(Y=0|X=0)=\frac{P(X=0,Y=0)}{P(X=0,Y=0)+P(X=0,Y=1)}=\frac{1}{2} P(Y=0X=0)=P(X=0,Y=0)+P(X=0,Y=1)P(X=0,Y=0)=21 P ( X = 0 , Y = 1 ) = 0 P(X=0,Y=1)=0 P(X=0,Y=1)=0的概率得知X=0时Y=0

    判别模型概率分布如下表格:

    Y=0Y=1X=010X=1 1 2 \frac{1}{2} 21 1 2 \frac{1}{2} 21

    ∑ Y P ( Y ∣ X ) = 1 \sum_Y P(Y|X)=1 YP(YX)=1

    P ( Y ∣ X ) P(Y|X) P(YX)用以分类

    输入属性X可以直接得到Y,不需要计算 P ( X , Y ) P(X,Y) P(X,Y)

    对于一个训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),\dots,(x_{N},y_{N})} T=(x1,y1),(x2,y2),,(xN,yN),朴素贝叶斯法通过学习先验概率分布 P ( Y = c k ) , k = 1 , 2 … , K P(Y = c_k),k=1,2\dots,K P(Y=ck),k=1,2,K和条件概率分布 P ( X = x ∣ Y = c k ) , k = 1 , 2 … , K P(X=x|Y=c_k),k=1,2\dots,K P(X=xY=ck),k=1,2,K得到联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)

    先验概率(prior probability)

    是指根据以往经验和分析得到的概率

    后验概率(posterior probability)

    得到某一信息后重新修正得到的概率

    后验概率的计算要以先验概率为基础。后验概率可以根据通过贝叶斯,用先验概率和似然函数计算出来

    朴素贝叶斯法

    输入空间: χ ⊆ R n \chi \subseteq R^n χRn

    输出空间: Y = c 1 , c 2 , . . . , c K Y= {c_1,c_2,...,c_K} Y=c1,c2,...,cK

    训练数据集: 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 ( Y = c k ∣ X ) P(Y=c_k|X) P(Y=ckX)对应的类别即 Y = c k Y=c_k Y=ck(后验概率最大化)

    从训练数据集中可得到:

    先验概率: P ( Y = c k ) , k = 1 , 2 , . . . , K P(Y=c_k),k=1,2,...,K P(Y=ck),k=1,2,...,K

    条件概率: P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( a ) = x ( a ) ) ∣ Y = c k ) , k = 1 , 2 , . . . , K P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(a)}=x^{(a)})|Y=c_k),k=1,2,...,K P(X=xY=ck)=P(X(1)=x(1),...,X(a)=x(a))Y=ck),k=1,2,...,K

    这里的x是向量,a表示维度,即对应第几个特征

    因为 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck)有指数级数量的参数

    对于一个特征(向量)X=x,为了知道其类别,通过学习训练数据集的先验概率分布 P ( Y = c k ) P(Y=c_k) P(Y=ck)和条件概率分布 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck),得到联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),再结合贝叶斯公式求得 P ( Y = c k ∣ X = x ) , k = 1 , 2 , . . . , K P(Y=c_k|X=x),k = 1,2,...,K P(Y=ckX=x),k=1,2,...,K,最后利用后验概率最大化求得 y = a r g max ⁡ c k P ( Y = c k ∣ X = x ) , k = 1 , 2 , . . . , K y = arg \max_{c_k}{P(Y=c_k|X=x),k = 1,2,...,K} y=argmaxckP(Y=ckX=x),k=1,2,...,K

    对于所有的 y = a r g max ⁡ c k P ( Y = c k ∣ X = x ) , k = 1 , 2 , . . . , K y = arg \max_{c_k}{P(Y=c_k|X=x),k = 1,2,...,K} y=argmaxckP(Y=ckX=x),k=1,2,...,K其分母都一样,所以可以将朴素贝叶斯的分类公式化简为 y = a r g max ⁡ c k P ( Y = c k ) ∏ j = 1 a P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , . . . , K y = arg \max_{c_k}{P(Y=c_k)\prod_{j=1}^{a} P(X^{(j)}=x^{(j)}|Y=c_k),k = 1,2,...,K} y=argckmaxP(Y=ck)j=1aP(X(j)=x(j)Y=ck),k=1,2,...,K

    后验概率最大化

    是从期望风险最小化转化而来的 f ( x ) = a r g m i n y ∑ k = 1 K P ( Y ≠ c k ∣ X = x ) = a r g m i n y ∑ k = 1 K 1 − P ( Y = c k ∣ X = x ) = a r g m a x y ∑ k = 1 K P ( Y = c k ∣ X = x ) \begin{aligned} f(x) &= arg min_y \sum_{k=1}^KP(Y \neq c_k |X=x)\\ &=arg min_y \sum_{k=1}^K 1-P(Y = c_k |X=x)\\ &= arg max_y \sum_{k=1}^K P(Y = c_k |X=x)\\ \end{aligned} f(x)=argminyk=1KP(Y=ckX=x)=argminyk=1K1P(Y=ckX=x)=argmaxyk=1KP(Y=ckX=x)

    朴素贝叶斯法的参数估计

    极大似然估计

    就是某类个数占总数比

    贝叶斯估计

    截取自《统计机器学习》第四章 S j S_j Sj表示第j个属性的可能取值

    Processed: 0.013, SQL: 9