朴素贝叶斯相关基础知识
文章目錄
- 判別模型與生成模型
- 判別模型
- 生成模型
- 先驗概率、條件概率、后驗概率
- 樸素貝葉斯法建模
- 后驗概率P(Y=ck∣X=x)P(Y=c_k| X = x)P(Y=ck?∣X=x)最大化的解釋
- 樸素貝葉斯法的參數估計
- 極大似然估計
- 算法流程
- 貝葉斯估計
- 優缺點
判別模型與生成模型
機器學習或者統計學習的方法可以分為判別模型(非概率模型)和生成模型(概率模型)。
判別模型
常見的形式為 y = f(x) ,建立目標變量y和輸入特征x之間的映射關系,并且多數情況下會形成決策邊界,如下圖所示。例如 y = wx + b。每當輸入一個新樣本的特征時,可以直接得到預測結果。以二分類為例子,wx + b 的結果是0~1之間的概率值,當概率值大于0.5,我們就得到y=1,反之,則y=0。
生成模型
常見的形式為P(y|x),建立出特征x與不同目標變量y之間的聯合概率分布。也就是建立好屬于不同y的特征x的分布模型,如下圖所示。當需要對新的數據x預測時,則需要判斷x屬于各個y的概率,概率大的y則為預測結果。
引用知乎文章機器學習“判定模型”和“生成模型”有什么區別? 中 politer的回答來舉個具體的例子:
判別式模型舉例:要確定一個羊是山羊還是綿羊,用判別模型的方法是從歷史數據中學習到模型,然后通過提取這只羊的特征來預測出這只羊是山羊的概率,是綿羊的概率。
生成式模型舉例:利用生成模型是根據山羊的特征首先學習出一個山羊的模型,然后根據綿羊的特征學習出一個綿羊的模型,然后從這只羊中提取特征,放到山羊模型中看概率是多少,在放到綿羊模型中看概率是多少,哪個大就是哪個。
細細品味上面的例子,判別式模型是根據一只羊的特征可以直接給出這只羊的概率(比如logistic regression,這概率大于0.5時則為正例,否則為反例),而生成式模型是要都試一試,最大的概率的那個就是最后結果~
如果你還了解過機器學習的其他算法,那么:
先驗概率、條件概率、后驗概率
先驗概率:是基于以往的經驗或對現有數據的分析所得到的概率,如硬幣正面的概率p為1/2,這里的p=1/2就是先驗概率。
條件概率:條件概率是知道原因來推測結果,即有因求果。就是給定某個事件X發生的前提條件下,另一個事件Y發生的概率,記為P(Y|X)。例如已知X:今天是雙十一,那么Y:促銷的概率可以記為P(促銷|今天是雙十一)。
后驗概率:條件概率是知道結果來推測原因,即有果求因。表達形式與條件概率相似,例如P(X|Y),只不過含義變了。例如X:今天是雙十一,Y:促銷,則P(X|Y)表示已知現在商品在促銷,那么今天是雙十一的概率,即P(今天是雙十一|促銷)。
樸素貝葉斯法建模
假設輸入空間X∈Rn\mathcal X \in R^nX∈Rn是n維的向量集合,輸出空間Y={c1,c2...ck}\mathcal Y = \{c_1, c_2...c_k\}Y={c1?,c2?...ck?}為類別標記的集合。輸入為特征向量x∈Xx \in \mathcal Xx∈X,輸出為類別標記 y∈Yy \in \mathcal Yy∈Y。X 為X\mathcal XX 上的隨機向量,Y為Y\mathcal YY 上的隨機變量。P(X, Y) 是X,Y的聯合概率分布,假設訓練集T:
T={(x1,y1),(x2,y2),...,(xN,yN)}T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1?,y1?),(x2?,y2?),...,(xN?,yN?)}
是由P(X, Y)獨立同分布產生。
樸素貝葉斯法實際上學到的是生成數據的機制,所以屬于生成模型。樸素貝葉斯法對條件概率分布做了條件獨立性假設(不同的特征相互獨立且同分布),通過已知數據集學習聯合概率分布P(X, Y)。具體的,需要學習:
P(Y=ck),k=1,2,...,K(1)P(Y=c_k), k=1,2,...,K \tag 1 P(Y=ck?),k=1,2,...,K(1)
P(X=x∣Y=ck)=P(X(1)=x(1),X(2)=x(2),…,X(n)=x(n)∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)(2)\begin{aligned} P(X=x|Y=c_k)&=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\dots,X^{(n)}=x^{(n)}|Y=c_k)\\ &=\prod^n_{j=1}P(X^{(j)}=x^{(j)}|Y=c_k) \end{aligned} \tag 2 P(X=x∣Y=ck?)?=P(X(1)=x(1),X(2)=x(2),…,X(n)=x(n)∣Y=ck?)=j=1∏n?P(X(j)=x(j)∣Y=ck?)?(2)
公式的上角標表示第i個樣本,其中(1)是各個類別的先驗概率分布,(2)是條件概率分布。基于上面的兩個式子,就可以計算得到聯合概率分布P(X, Y)。
樸素貝葉斯法在分類時,對給定的輸入x,通過學習到的模型計算后驗概率分布P(Y=ck∣X=x)P(Y=c_k| X = x)P(Y=ck?∣X=x),然后將后驗概率最大的類別作為x的輸出。后驗概率的計算公式由貝葉斯定理(全概率公式)可得:
P(Y=ck∣X=x)=P(Y=ck,X=x)p(X=x)=P(X=x∣Y=ck)P(Y=ck)∑k=1KP(X=x∣Y=ck)P(Y=ck)(3)\begin{aligned} P(Y=c_k| X = x) &= \frac{P(Y=c_k, X = x)}{p(X = x)} \\ &= \frac{P(X=x|Y=c_k) P(Y=c_k)}{\sum_{k=1}^KP(X=x|Y=c_k)P(Y=c_k)} \end{aligned} \tag 3 P(Y=ck?∣X=x)?=p(X=x)P(Y=ck?,X=x)?=∑k=1K?P(X=x∣Y=ck?)P(Y=ck?)P(X=x∣Y=ck?)P(Y=ck?)??(3)
基于(3),樸素貝葉斯分類器可以表示為:
y=arg?max?ckP(Y=ck∣X=x)(4)y = \arg \max\limits_{c_k}P(Y=c_k| X = x) \tag 4 y=argck?max?P(Y=ck?∣X=x)(4)
由于(3)的分母是個固定值,故(4)可以簡化為:
y=arg?max?ckP(X=x∣Y=ck)P(Y=ck)(5)y =\arg \max\limits_{c_k}P(X=x|Y=c_k) P(Y=c_k) \tag 5 y=argck?max?P(X=x∣Y=ck?)P(Y=ck?)(5)
將(2)代入(5)又可以得到:
y=arg?max?ckP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)(6)y =\arg \max\limits_{c_k} P(Y=c_k)\prod^n_{j=1}P(X^{(j)}=x^{(j)}|Y=c_k) \tag 6 y=argck?max?P(Y=ck?)j=1∏n?P(X(j)=x(j)∣Y=ck?)(6)
后驗概率P(Y=ck∣X=x)P(Y=c_k| X = x)P(Y=ck?∣X=x)最大化的解釋
樸素貝葉斯法將實例劃分到概率最大的類別中,等價于期望風險最小化,所謂期望風險就是損失的期望值。假設我們選擇0-1損失函數:
L(Y,f(x))={1,Y≠f(X)0,Y≠f(X)L(Y,f(x)) = \left\{ \begin{array}{lr} 1, Y\ne f(X) \\ 0, Y\ne f(X) \end{array} \right. L(Y,f(x))={1,Y?=f(X)0,Y?=f(X)?
損失值越小,模型越好。f(X)為決策函數,此時期望風險為:
Rexp(f)=E[L(Y,f(X))]R_{exp}(f) = E[L(Y, f(X))] Rexp?(f)=E[L(Y,f(X))]
對于某個向量X,可以用下面的公式求期望風險:
Rexp(f)=∑k=1K[L(ck,f(X))]P(ck∣X)R_{exp}(f) = \sum_{k=1}^K[L(c_k,f(X))]P(c_k|X) Rexp?(f)=k=1∑K?[L(ck?,f(X))]P(ck?∣X)
要得到某個y,使得上式最小化,則有:
f(x)=arg?min?y∈Y∑k=1KL(ck,y)P(ck∣X=x)=arg?min?y∈Y∑k=1KP(y≠ck∣X=x)=arg?min?y∈Y(1?P(y=ci∣X=x))=arg?max?y∈YP(y=ck∣X=x)\begin{aligned} f(x) &= \arg\min\limits_{y \in \mathcal Y} \sum_{k=1}^KL(c_k, y)P(c_k|X=x) \\ &= \arg\min\limits_{y \in \mathcal Y} \sum_{k=1}^KP(y \ne c_k|X=x) \\ &= \arg\min\limits_{y \in \mathcal Y} (1-P(y=c_i|X=x)) \\ &= \arg\max\limits_{y \in \mathcal Y}P(y=c_k|X=x) \end{aligned} f(x)?=argy∈Ymin?k=1∑K?L(ck?,y)P(ck?∣X=x)=argy∈Ymin?k=1∑K?P(y?=ck?∣X=x)=argy∈Ymin?(1?P(y=ci?∣X=x))=argy∈Ymax?P(y=ck?∣X=x)?
這樣,想要期望風險最小化則需要后驗概率最大化:
f(x)=arg?max?y∈YP(y=ck∣X=x)f(x) = \arg\max\limits_{y \in \mathcal Y}P(y=c_k|X=x) f(x)=argy∈Ymax?P(y=ck?∣X=x)
這就是樸素貝葉斯法采用的原理。
樸素貝葉斯法的參數估計
極大似然估計
在樸素貝葉斯法中,模型的學習就是要估計P(Y=ck)P(Y=c_k)P(Y=ck?)和P(X(j)=x(j)∣Y=ck)P(X^{(j)}=x^{(j)}|Y=c_k)P(X(j)=x(j)∣Y=ck?),可以用極大似然估計法估計相應的概率。
P(Y=ck)P(Y=c_k)P(Y=ck?)好理解,其實就是ckc_kck?的頻率:
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,...,KP(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)}{N}, k=1,2,...,K \\ P(Y=ck?)=N∑i=1N?I(yi?=ck?)?,k=1,2,...,K
P(X(j)=x(j)∣Y=ck)P(X^{(j)}=x^{(j)}|Y=c_k)P(X(j)=x(j)∣Y=ck?) 就是要計算屬于不同的ckc_kck?的樣本中,不同特征的不同取值的概率。設第j個特征x(j)x^{(j)}x(j)的可能取值集合為{aj1,aj2,...,ajSj}\{a_{j1}, a_{j2},..., a_{jS_j}\}{aj1?,aj2?,...,ajSj??},則極大似然估計為:
P(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck)j=1,2,...,n;l=1,2,...,Sj;k=1,2,...,K;P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl}, y_i = c_k)}{\sum_{i=1}^N I(y_i = c_k)} \\ j=1,2,...,n; \quad l=1,2,...,S_j; \quad k=1,2,...,K; \quad P(X(j)=ajl?∣Y=ck?)=∑i=1N?I(yi?=ck?)∑i=1N?I(xi(j)?=ajl?,yi?=ck?)?j=1,2,...,n;l=1,2,...,Sj?;k=1,2,...,K;
其中ajla_{jl}ajl?表示第j個特征取第lll個值,III為指示函數,滿足條件則取值為1,否則為0。
算法流程
(1)計算先驗概率與條件概率:
P(Y=ck)=∑i=1NI(yi=ck)NP(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck)j=1,2,...,n;l=1,2,...,Sj;k=1,2,...,K;P(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)}{N}\\ P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl}, y_i = c_k)}{\sum_{i=1}^N I(y_i = c_k)} \\ j=1,2,...,n; \quad l=1,2,...,S_j; \quad k=1,2,...,K; \quad P(Y=ck?)=N∑i=1N?I(yi?=ck?)?P(X(j)=ajl?∣Y=ck?)=∑i=1N?I(yi?=ck?)∑i=1N?I(xi(j)?=ajl?,yi?=ck?)?j=1,2,...,n;l=1,2,...,Sj?;k=1,2,...,K;
(2)對于給定的實例x=(x(1),x(2),...x(n))Tx=(x^{(1)},x^{(2)},...x^{(n)})^Tx=(x(1),x(2),...x(n))T,計算:
P(Y=Ck)=∏j=1nP(X(j)=x(j)∣Y=ck)P(Y=C_k) = \prod^n_{j=1}P(X^{(j)}=x^{(j)}|Y=c_k) P(Y=Ck?)=j=1∏n?P(X(j)=x(j)∣Y=ck?)
(3)確定實例x的類:
y=arg?max?ckP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)y =\arg \max\limits_{c_k} P(Y=c_k)\prod^n_{j=1}P(X^{(j)}=x^{(j)}|Y=c_k) y=argck?max?P(Y=ck?)j=1∏n?P(X(j)=x(j)∣Y=ck?)
舉個例子,假設有數據集如下圖所示,估計x=(2,S)Tx=(2,S)^Tx=(2,S)T的類別:
則利用樸素貝葉斯法求解過程如下:
P(Y=1)=9/15,P(Y=?1)=6/15P(X(1)=1∣Y=1)=2/9,P(X(1)=2∣Y=1)=3/9,P(X(1)=3∣Y=1)=4/9P(X(2)=S∣Y=1)=1/9,P(X(2)=M∣Y=1)=4/9,P(X(2)=L∣Y=1)=4/9P(X(1)=1∣Y=?1)=3/6,P(X(1)=2∣Y=?1)=2/6,P(X(1)=3∣Y=?1)=4/6P(X(2)=S∣Y=?1)=3/6,P(X(2)=M∣Y=?1)=2/6,P(X(2)=L∣Y=?1)=1/6P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)=915?39?19=145P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=S∣Y=?1)=615?26?36=115\begin{aligned} & P(Y=1) = 9/15, P(Y=-1) = 6/15 \\ \\ & 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^{(2)}=S|Y=1)=1/9, P(X^{(2)}=M|Y=1)=4/9, P(X^{(2)}=L|Y=1)=4/9 \\ & P(X^{(1)}=1|Y=-1)=3/6, P(X^{(1)}=2|Y=-1)=2/6, P(X^{(1)}=3|Y=-1)=4/6 \\ & 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(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1) = \frac{9}{15} \cdot\frac{3}{9} \cdot\frac{1}{9}=\frac{1}{45} \\ & P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1) = \frac{6}{15} \cdot\frac{2}{6} \cdot\frac{3}{6}=\frac{1}{15} \end{aligned} ?P(Y=1)=9/15,P(Y=?1)=6/15P(X(1)=1∣Y=1)=2/9,P(X(1)=2∣Y=1)=3/9,P(X(1)=3∣Y=1)=4/9P(X(2)=S∣Y=1)=1/9,P(X(2)=M∣Y=1)=4/9,P(X(2)=L∣Y=1)=4/9P(X(1)=1∣Y=?1)=3/6,P(X(1)=2∣Y=?1)=2/6,P(X(1)=3∣Y=?1)=4/6P(X(2)=S∣Y=?1)=3/6,P(X(2)=M∣Y=?1)=2/6,P(X(2)=L∣Y=?1)=1/6P(Y=1)P(X(1)=2∣Y=1)P(X(2)=S∣Y=1)=159??93??91?=451?P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=S∣Y=?1)=156??62??63?=151??
由于1/15大于1/45,所以y = -1。
貝葉斯估計
回歸條件概率的計算:
P(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck)P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl}, y_i = c_k)}{\sum_{i=1}^N I(y_i = c_k)} P(X(j)=ajl?∣Y=ck?)=∑i=1N?I(yi?=ck?)∑i=1N?I(xi(j)?=ajl?,yi?=ck?)?
如果存在某個類別下的某個特征沒有出現過,則概率值為0,會影響后驗概率的計算結果,導致分類結果產生偏差。解決此類問題的方法是采用貝葉斯估計。條件概率的貝葉斯估計是:
Pλ(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)+λ∑i=1NI(yi=ck)+Sjλ(1)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} \tag 1 Pλ?(X(j)=ajl?∣Y=ck?)=∑i=1N?I(yi?=ck?)+Sj?λ∑i=1N?I(xi(j)?=ajl?,yi?=ck?)+λ?(1)
式子中 λ≥0\lambda \ge 0λ≥0,當λ=0\lambda = 0λ=0則為極大似然估計,λ\lambdaλ 通常取1,此時成為拉普拉斯平滑。同樣,先驗概率的貝葉斯估計是:
Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+KλP_\lambda(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k)+\lambda}{N+K\lambda} Pλ?(Y=ck?)=N+Kλ∑i=1N?I(yi?=ck?)+λ?
優缺點
優點
缺點:
參考文章:
總結
以上是生活随笔為你收集整理的朴素贝叶斯相关基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迅捷 FWR100 无线路由器 设置虚拟
- 下一篇: 宽带安装宣传文案30句