机器学习理论《统计学习方法》学习笔记:第四章 朴素贝叶斯法
機器學習理論《統計學習方法》學習筆記:第四章 樸素貝葉斯法
- 4 樸素貝葉斯法
- 4.1 樸素貝葉斯法的學習與分類
- 4.1.1 基本方法
- 4.1.2 后驗概率最大化的含義
- 4.2 樸素貝葉斯法的參數估計
- 4.2.1 極大似然估計
- 4.2.2 學習與分類算法
- 4.2.3 貝葉斯估計
- 本章概要
4 樸素貝葉斯法
- 樸素貝葉斯(native bayes)法是基于貝葉斯定理與特征條件獨立假設的分類方法。對于給定的訓練數據集,首先基于特征條件獨立假設學習輸入輸出的聯合概率分布;然后基于此模型,對給定的輸入x,利用貝葉斯定理求出后驗概率最大的輸出y。樸素貝葉斯法實現簡單,學習與預測的效率都很高,是一種常用的方法。
4.1 樸素貝葉斯法的學習與分類
4.1.1 基本方法
- 設輸入空間 X∈RnX\in R^nX∈Rn 為n維向量的集合,輸出空間為類標記集合Y={c1,c2,?,ck}Y=\{c_1,c_2,\cdots,c_k\}Y={c1?,c2?,?,ck?}輸入為特征向量x∈Xx\in Xx∈X,輸出為類標記 y∈Yy\in Yy∈Y.XXX是定義在輸入空間上的隨機變量,YYY 是定義在輸出空間上的隨機變。P(X,Y)P(X,Y)P(X,Y)是XXX和YYY的聯合概率分布.訓練數據集T={(x1,y1),(x2,y2),?,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}T={(x1?,y1?),(x2?,y2?),?,(xN?,yN?)}由P(X,Y)P(X,Y)P(X,Y)獨立同分布產生。
- 樸素貝葉斯法通過訓練數據集學習聯合概率分布P(X,Y)P(X,Y)P(X,Y)。具體地,學習以下先驗概率分布及條件概率分布。
先驗概率分布P(Y=ck),k=1,2,?,KP(Y=c_k),k=1,2,\cdots,KP(Y=ck?),k=1,2,?,K
條件概率分布P(X=x∣Y=ck)=P(X(1)=x(1),X(2)=x(2),?,X(n)=x(n)∣Y=ck),k=1,2,?,KP(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\cdots,X^{(n)}=x^{(n)}|Y=c_k),k=1,2,\cdots,KP(X=x∣Y=ck?)=P(X(1)=x(1),X(2)=x(2),?,X(n)=x(n)∣Y=ck?),k=1,2,?,K于是學習到聯合概率分布P(X,Y)P(X,Y)P(X,Y) - 條件概率分布P(X=x∣Y=ck)P(X=x|Y=c_k)P(X=x∣Y=ck?)有指數級數量的參數,其估計實際是不可行的。事實上,假設x(j)x^{(j)}x(j)有SjS_jSj?個,j=1,2,?,nj=1,2,\cdots,nj=1,2,?,n,Y可能取值有K個,那么參數個數為K∏j=1nSjK\prod_{j=1}^nS_j Kj=1∏n?Sj?
- 樸素貝葉斯法對條件概率分布作了條件獨立性假設。由于這時一個較強的假設,樸素貝葉斯法也由此得名。具體地,條件獨立性假設是P(X=x∣Y=ck)=P(X(1)=x(1),X(2)=x(2),?,X(n)=x(n)∣Y=ck)P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)P(X=x∣Y=ck?)=P(X(1)=x(1),X(2)=x(2),?,X(n)=x(n)∣Y=ck?)
P(X=x∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)P(X=x|Y=c_k)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)P(X=x∣Y=ck?)=j=1∏n?P(X(j)=x(j)∣Y=ck?) - 樸素貝葉斯法實際上學習到生成數據的機制,所以屬于生成模型。條件獨立假設等于是說,用于分類的特征在類確定的條件下都是條件獨立的。這一假設使樸素貝葉斯法變得簡單,但是有時會犧牲一定的分類準確率。
- 貝葉斯分類器可表示為y=f(x)=argmaxckP(Y=ck)∏P(X(j)=x(j)∣Y=ck)∑kP(Y=ck)∏P(X(j)=x(j)∣Y=ck)y=f(x)=arg\space max_{c_k}{{P(Y=c_k)\prod P(X^{(j)}=x^{(j)}|Y=c_k)}\over{\sum_k P(Y=c_k)\prod P(X^{(j)}=x^{(j)}|Y=c_k)}}y=f(x)=arg?maxck??∑k?P(Y=ck?)∏P(X(j)=x(j)∣Y=ck?)P(Y=ck?)∏P(X(j)=x(j)∣Y=ck?)?,其中分母對所有ckc_kck?都是相同的,所以y=argmaxckP(Y=ck)∏P(X(j)=x(j)∣Y=ck)y=arg\space max_{c_k}{P(Y=c_k)\prod P(X^{(j)}=x^{(j)}|Y=c_k)}y=arg?maxck??P(Y=ck?)∏P(X(j)=x(j)∣Y=ck?)
4.1.2 后驗概率最大化的含義
樸素貝葉斯法將實例分到后驗概率最大的類中,這等價于期望風險最小化。
假設選擇0-1損失函數:
L(Y,f(X))={1,Y≠f(X)0,Y?=?f(X)L(Y,f(X))= \begin{cases} 1,&\text{Y$\neq$f(X)}\\ 0,&\text{Y = f(X)} \end{cases} L(Y,f(X))={1,0,?Y?=f(X)Y?=?f(X)?式中f(X)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))]期望是對聯合分布P(X,Y)P(X,Y)P(X,Y)取的。
根據期望風險最小化準則就得到了后驗概率最大化準則:f(x)=argmaxckP(ck∣X=x)f(x)=arg\space max_{c_k}P(c_k|X=x)f(x)=arg?maxck??P(ck?∣X=x)即樸素貝葉斯法所采用的原理。
4.2 樸素貝葉斯法的參數估計
4.2.1 極大似然估計
- 在樸素貝葉斯法中,學習意味著估計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?)的極大似然估計是P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,?,KP(Y=c_k)={{\sum_{i=1}^NI(y_i=c_k)}\over{N}},k=1,2,\cdots,KP(Y=ck?)=N∑i=1N?I(yi?=ck?)?,k=1,2,?,K
4.2.2 學習與分類算法
樸素貝葉斯算法
- 輸入:
訓練數據集T={(x1,y1),(x2,y2),?,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}T={(x1?,y1?),(x2?,y2?),?,(xN?,yN?)},其中,xi=(xi(1),xi(2),?,xi(n))Tx_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^Txi?=(xi(1)?,xi(2)?,?,xi(n)?)T,xi(j)x_i^{(j)}xi(j)?是第i個樣本的第j個特征,xi(j)∈{aj1,aj2,?,ajSj}x_i^{(j)}\in\{a_{j1},a_{j2},\cdots,a_{jS_j}\}xi(j)?∈{aj1?,aj2?,?,ajSj??},ajla_{jl}ajl?是第j個特征值可能取的第l個值,j=1,2,?,n;l=1,2,?,Sj;yi∈{c1,c2,?,ck}j=1,2,\cdots,n;l=1,2,\cdots,S_j;y_i\in\{c_1,c_2,\cdots,c_k\}j=1,2,?,n;l=1,2,?,Sj?;yi?∈{c1?,c2?,?,ck?};實例xxx; - 輸出:實例xxx的分類
(1)計算先驗概率及條件概率
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,?,KP(Y=c_k)={{\sum_{i=1}^NI(y_i=c_k)}\over{N}},k=1,2,\cdots,KP(Y=ck?)=N∑i=1N?I(yi?=ck?)?,k=1,2,?,K
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)={{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}\over{\sum_{i=1}^NI(y_i=c_k)}}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,?,Kj=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,Kj=1,2,?,n;l=1,2,?,Sj?;k=1,2,?,K
(2)對于給定實例x=(x(1),x(2),?,x(n))Tx=(x^{(1)},x^{(2)},\cdots,x^{(n)})^Tx=(x(1),x(2),?,x(n))T,計算P(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck),k=1,2,?,KP(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),k=1,2,\cdots,KP(Y=ck?)j=1∏n?P(X(j)=x(j)∣Y=ck?),k=1,2,?,K
(3)確定實例xxx的類
y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)y=arg\space max_{c_k} P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)y=arg?maxck??P(Y=ck?)j=1∏n?P(X(j)=x(j)∣Y=ck?)
4.2.3 貝葉斯估計
- 用極大似然估計可能會出現所要估計的概率值為0的情況。這時會影響到后驗概率的計算結果,使分類產生偏差。解決這一問題的方法是采用貝葉斯估計。具體地,條件概率的貝葉斯估計是Pλ(X(j)=ajl∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)+λ∑i=1NI(yi=ck)+SjλP_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)={{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}\over{\sum_{i=1}^NI(y_i=c_k)+S_j\lambda}}Pλ?(X(j)=ajl?∣Y=ck?)=∑i=1N?I(yi?=ck?)+Sj?λ∑i=1N?I(xi(j)?=ajl?,yi?=ck?)+λ?式中λ≥0\lambda \ge0λ≥0.等價于在隨機變量各個取值的頻數上賦予一個正數 λ>0\lambda\gt0λ>0.當λ=0\lambda=0λ=0時,就是極大似然估計。常取λ=1\lambda=1λ=1,這時稱為拉普拉斯平滑。顯然,對任何l=1,2,?,Sj,k=1,2,?,Kl=1,2,\cdots,S_j,k=1,2,\cdots,Kl=1,2,?,Sj?,k=1,2,?,K;有
Pλ(X(j)=ajl∣Y=ck)>0P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)>0Pλ?(X(j)=ajl?∣Y=ck?)>0
∑(l=1)SjP(X(j)=ajl∣Y=ck)=1\sum_{(l=1)}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1(l=1)∑Sj??P(X(j)=ajl?∣Y=ck?)=1
先驗概率的貝葉斯估計是Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+KλP_{\lambda}(Y=c_k)={{\sum_{i=1}^N}I(y_i=c_k)+\lambda\over{N+K\lambda}}Pλ?(Y=ck?)=N+Kλ∑i=1N?I(yi?=ck?)+λ?
本章概要
=∏j=1nP(X(j)=x(j)∣Y=ck)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)=j=1∏n?P(X(j)=x(j)∣Y=ck?)這是一個較強的假設。由于這一假設,模型包含的條件概率的數量大為減少,樸素貝葉斯法的學習與預測大為簡化。因而樸素貝葉斯法高效且易于實現。其缺點是分類的性能不一定很高。
總結
以上是生活随笔為你收集整理的机器学习理论《统计学习方法》学习笔记:第四章 朴素贝叶斯法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习理论《统计学习方法》学习笔记:第
- 下一篇: 机器学习理论《统计学习方法》学习笔记:第