机器学习笔记(七)贝叶斯分类器
7.貝葉斯分類器
7.1貝葉斯決策論
貝葉斯決策論(Bayesiandecision theory)是概率框架下實施決策的基本方法。對分類任務來說,在所有相關概率都已知的理想情形下,貝葉斯決策論考慮如何基于這些概率和誤判損失來選擇最優的類別標記。這其實是關系到兩個基本概念:多大可能是這個類別以及可能誤判的損失?機器學習就是從中選擇誤判損失最小的最大概率類別作為其分類標識。
回顧下貝葉斯模型的數學推論過程,首先是要保證貝葉斯分類器產生的總體誤判損失是最小的,而要得到最小,關鍵就是從中選擇后驗概率最大的類別標記。顯然,基于貝葉斯準則來最小化鞠策風險,現在第一就是要獲得后驗概率P(c|x),故此機器學習的主要任務就是基于有限的訓練樣本集盡可能準確地估計出后驗概率P(c|x)。
對于后驗概率的估計,大體有兩種策略:1)判別式模型(discriminative models):給定x,通過直接建模P(c|x)來預測c,決策樹、BP神經網絡、支持向量機等都顯然屬于該范疇,預設模型并通過樣本集訓練出參數進而再優化;2)生成式模型(generative models):先對聯合概率分布P(x,c)建模,然后再由此獲得P(c|x)。
貝葉斯分類器就是基于條件概率而開展:P(c|x)= P(x,c)/P(x),基于貝葉斯定理,P(c|x)=P(c)P(x|c)/P(x),其中P(c)是類先驗(prior)概率;P(x|c)是樣本x相對于類標記c的類條件概率(class-conditional probability),或稱為似然(likelihood);P(x)是用于歸一化的證據因子。對給定樣本,證據因子P(x)與類標記無關,因此估計P(c|x)的問題就轉化為如何基于訓練集D來估計先驗P(c)和似然(條件)P(x|c)。
P(c)的訓練:類先驗概率P(c)表達了樣本空間中各類樣本所占的比例,根據大數定律,當訓練集包含充足的獨立同分布樣本時,P(c)可通過各類樣本出現的頻率來進行估計。
P(x|c)的訓練:類條件概率P(x|c),涉及到關于x所有屬性的聯合概率,直接根據樣本出現的頻率來估計有困難。例如,假設樣本的d個屬性都是二值的,則樣本空間將有2d中可能的取值,在現實應用中,這個值往往大于訓練樣本數m,也就是說,很多樣本的取值在訓練集中根本沒有出現,直接使用頻率來估計P(x|c)顯然不可行,因為“未被觀測到”和“出現概率為零”通常是不同的。那怎么求解呢?極大似然估計來也。
7.2極大似然估計
既然無法直接通過頻率來估計,那么估計類條件概率的策略可以這樣:先假定其具有某種確定的概率分布形式,再基于訓練樣本對概率分布的參數進行估計。
這種參數化的方法雖然能使條件概率估計變得相對簡單,但估計結果的準確性依賴于所假設的概率分布形式是否符合潛在的真實數據分布。在現實應用中,要做出能較好地接近潛在真實分布的假設,往往需要在一定程度上利用關于應用任務本身的經驗知識,否則若僅憑猜測來假設概率分布形式,很可能產生誤導性結果。既然是似然,經驗自然是重要的。
7.3樸素貝葉斯分類器
上文可知,基于貝葉斯公式P(c|x)=P(c)P(x|c)/ P(x)來估計后驗概率P(c|x)的困難是:類條件概率P(x|c)是所有屬性的聯合概率,難以從有限的訓練樣本直接估計而得。為解決該問題,樸素貝葉斯分類器(na?ve bayes classifer)采用了屬性條件獨立性假設(attributeconditional independence assumption),對已知類別,假設所有屬性相互獨立。換言之,假設每個屬性獨立地對分類結果發生影響。
文中的西瓜集例子,可以很好地理解上面的求解,重點是計算樣本集中不同屬性的類別數??蓞⒖糃SDN博客http://blog.csdn.net/fjssharpsword/article/details/53021776來理解。
如此,通過拉普拉斯修正避免了因訓練集樣本不充分而導致概率估值為零的問題,并且在訓練集變大時,修正過程所引入的先驗(Prior)的影響也會逐漸變得可忽略,使得估值趨向于實際概率值。
在現實任務中樸素貝葉斯分類器有很多種使用方式。例如,若任務對預測速度要求較高,則對給定訓練集,可將樸素貝葉斯分類器涉及的所有概率估值事先計算好存儲起來,這樣在進行預測時只需查表即可進行判別;若任務數據更替頻繁,則可采用懶惰學習(lazy learning)方式,先不進行任何訓練,待收到預測請求時再根據當前數據集進行概率估值;若數據不斷增加,則可在現有估值基礎上,僅對新增樣本的屬性值所涉及的概率估值進行計數修正即可實現增量學習。懶惰學習和增量學習的思維,其實也是貫穿一種分治策略。???
7.4半樸素貝葉斯分類器
為解決貝葉斯公式中估計后驗概率P(c|x)中類條件概率P(x|c)估計的困難,樸素貝葉斯分類器假設屬性條件獨立性,但在現實任務中這個假設并不總能成立。為此,在屬性條件獨立假設基礎上,進一步考慮屬性間的關系,提出半樸素貝葉斯分類器(semi-na?ve bayes classifier)的學習方法。半樸素貝葉斯分類器的基本想法是適當考慮一部分屬性間的相互依賴信息,從而既不需進行聯合概率完全計算,又不至于徹底忽略了比較強的屬性依賴關系。獨依賴估計(one-dependent estimator,ode)是半樸素貝葉斯分類器最常用的一種策略。所謂獨依賴,就是假設每個屬性在類別之外最多僅依賴一個其他屬性,即:
?
7.5貝葉斯網
屬性之間的依賴關系,可通過貝葉斯網(bayesian network)也稱信念(belief network)網來刻畫,其借助有向無環圖(Directed Acyclic Graph,DAG)并使用條件概率表(ConditionalProbability Table,CPT)來描述屬性的聯合概率分布。假定所有屬性均為離散型,對于連續屬性,條件概率表可推廣為條件概率密度函數。
具體來說,一個貝葉斯網B由結構G和參數Θ兩部分構成,即B=<G,Θ>。網絡結構G是一個有向無環圖,其每個結點對應一個屬性,若兩個屬性有直接依賴關系,則它們由一條邊連接起來;參數Θ定量描述了這種依賴關系。假設屬性x i在G中的父結點集為π i,則Θ包含了每個屬性的條件概率表:Θx i|π i=P B(x i|π i)。文中有圖和表分別展示G和B。
2)學習
若貝葉斯網結構已知,即屬性間的依賴關系已知,按照上文定義,只需通過對訓練樣本計數,估計出每個結點的條件概率表即可。但現實應用中并不知曉網絡結構,因此,貝葉斯網學習的首要任務是根據訓練數據集來找出結構最恰當的貝葉斯網。評分搜索是求解這一問題的常用辦法,具體來說,先定義一個評分函數(score function),以此來評估貝葉斯網與訓練數據的契合度,然后基于這個評分函數來尋找結構最優的貝葉斯網。評分函數定義了獲得怎樣貝葉斯網的歸納偏好。
要找結構,先定義評分函數,然后基于評分函數找最優結構。常用評分函數通?;谛畔⒄摐蕜t,此類準則將學習問題看作一個數據壓縮任務,學習的目標是找到一個能以最短編碼長度描述訓練數據的模型,此時編碼的長度包括了描述自身需要的字節長度和使用該模型描述數據所需的字節長度。對貝葉斯網學習而言,模型就是一個貝葉斯網,同時,每個貝葉斯網描述了一個在訓練數據上的概率分布,自由一套編碼機制能使那些經常出現的樣本有更短的編碼。于是,應該選擇那個綜合編碼長度(包括描述網絡和編碼數據)最短的貝葉斯網,這就是最小描述長度(minimal description length,MDL)準則。
給定訓練集D={x 1,x 2,…,x n},貝葉斯網B=<G, Θ>在D上的評分函數為:
然而,從所有可能的網絡結構空間搜索(屬性數d的規模決定)最優貝葉斯網結構是一個NP問題,難以快速求解。有兩種常用的策略能在有限時間內求得近似解:
第一種貪心法,從某個網絡結構出發,每次調整一條邊(增、刪、改方向),直到評分函數不再降低為止;
第二種通過給網絡結構施加約束來削減搜索空間,如將網路結構限定為樹形結構等,模型要理想才能計算出,現實是復雜的。
3)推斷
貝葉斯網絡訓練好之后就能用來回答查詢(query),即通過一些屬性變量的觀測值來推測其他屬性變量的取值。通過已知變量觀測值來推測待查詢變量的過程稱為推斷(inference),已知變量觀測值稱為證據(evidence)。輸入證據,通過模型推斷出結論。
最理想的是直接根據貝葉斯網定義的聯合概率分布來精確計算后驗概率;然而,這樣的精確推斷已被證明是NP難得。換言之,當網絡結點較多,連接稠密時,難以精確推斷,需借助近似推斷,通過降低精度要求,在有限時間內求得近似解。在現實應用中,貝葉斯網的近似推斷常采用吉布斯采樣算法(Gibbs sampling)來完成,這是一種隨機采用的方法,下面說明該算法。
問題:令Q={Q1,Q2,…,Qn}表示待查詢變量,E={E1,E2,…,Ek}為證據變量,已知其取值為e={e1,e2,…,ek}。目標是計算后驗概率P(Q=q|E=e),其中q={q1,q2,…,qn}是待查詢變量的一組取值。
解答:
先隨機產生一個和證據E=e一致的樣本q 0作為初始點,然后每步從當前樣本出發產生下一個樣本。具體來說,在第t次采樣中,算法先假設q t= q t-1,然后對非證據變量逐個進行采樣改變其取值,采樣概率根據貝葉斯網B和其他變量的當前取值(即Z=z)計算獲得。
吉布斯采樣是在貝葉斯網所有變量的聯合狀態空間與證據E=e一致的子空間中進行隨機漫步(random walk)。每一步僅依賴前一步的狀態,這是一個馬爾可夫鏈(Markov chain)。在一定條件下,無論從什么初始狀態開始,馬爾可夫鏈第t步的狀態分布在t->∞時必收斂于一個平穩分布(stationary distribution);對于吉布斯采樣來說,這個分布恰好就是P(Q|E=e)。因此,在T很大時,吉布斯采樣相當于根據P(Q|E=e)采樣,從而保證收斂于P(Q=q|E=e)。
值得注意的是,由于馬爾可夫鏈通常需要很長時間才能趨于平穩分布,因此吉布斯采樣算法的收斂速度較慢。此外,若貝葉斯網中存在極端概率0或1,則不能保證馬爾可夫鏈存在平穩分布,此時吉布斯采樣會給出錯誤的估計結果。
?
7.6EM算法
上文的假設是訓練樣本所有屬性變量的值都已被觀測到,即訓練樣本是完整的。但在現實應用中往往會遇到不完整的訓練樣本,即訓練樣本的屬性變量值未知。問題是在這種存在未觀測變量的情形下,是否仍能對模型參數進行估計呢?
未觀測變量也稱為隱變量(latent variable)。令X表示已觀測變量集,Z表示隱變量集,Θ表示模型參數。若欲對Θ作極大似然估計,則應最大化對數似然:LL(Θ|X,Z)=ln P(X,Z|Θ)。不過Z是隱變量,無法直接求解,可通過對Z計算期望,來最大化已觀測數據的對數邊際似然(marginal likelihood):
簡單來說,EM算法使用兩個步驟交替計算:第一步是期望E步,利用當前估計的參數值來計算對數似然的期望值;第二步是最大化M步,尋找能使E步產生的似然期望最大化的參數值。然后新得到的參數值重新被用于E步,…,直至收斂到局部最優解。
EM算法可以看作用坐標下降法(coordinate descent)來最大化對數似然下界的過程。事實上,隱變量估計問題也可通過梯度下降等優化算法求解,但由于求和的項數將隨著隱變量的數目以指數級上升,會給梯度計算帶來麻煩。而EM算法則可看作一種非梯度優化方法。
坐標下降法是一種非梯度優化方法,在每步迭代中沿一個坐標方向進行搜索,通過循環使用不同的坐標方向來達到目標函數的局部極小值。
總結
以上是生活随笔為你收集整理的机器学习笔记(七)贝叶斯分类器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转载)hadoop2.2.0集群的HA
- 下一篇: 机器学习知识点(十)马尔可夫链