作者:盧譽(yù)聲 來(lái)源:華章科技 分類(lèi)問(wèn)題是一種經(jīng)典的機(jī)器學(xué)習(xí)問(wèn)題,而貝葉斯只是一種常見(jiàn)模型。比如最樸素的分類(lèi)模型和最容易理解的模型其實(shí)是決策樹(shù)模型,這種模型比較接近我們的決策思維。 主要思路是根據(jù)與我們解決問(wèn)題相關(guān)的多個(gè)因素逐一確定下一步的方案,整個(gè)決策過(guò)程就像一棵自頂向下的樹(shù)一樣,故名決策樹(shù)。如圖2-1所示,這是一個(gè)人根據(jù)天氣、溫度、風(fēng)況和氣壓幾個(gè)因素決定是否去釣魚(yú)的決策樹(shù)。 ▲圖2-1 決策樹(shù)示例 圖中矩形的節(jié)點(diǎn)是決策節(jié)點(diǎn),節(jié)點(diǎn)之間連線上的是屬性值,而圓形節(jié)點(diǎn)是結(jié)果節(jié)點(diǎn)。 構(gòu)建完這個(gè)樹(shù)模型之后我們就可以預(yù)測(cè)這個(gè)人是否會(huì)出門(mén)釣魚(yú)了。預(yù)測(cè)時(shí),首先我們把數(shù)據(jù)輸入到根節(jié)點(diǎn)。其次,根據(jù)數(shù)據(jù)屬性值來(lái)選擇某個(gè)特定的分支,每選擇一個(gè)子節(jié)點(diǎn)再根據(jù)該節(jié)點(diǎn)分支的屬性值選擇該節(jié)點(diǎn)的特定分支,直到遞歸遍歷到葉子節(jié)點(diǎn)為止,就可以得到預(yù)測(cè)結(jié)果了。 這個(gè)模型比較符合我們解決問(wèn)題的邏輯思維,易于理解,因此常常會(huì)用在專(zhuān)家系統(tǒng)中。另外,這個(gè)模型需要存儲(chǔ)的參數(shù)相對(duì)較少,預(yù)測(cè)耗時(shí)短,這也是它的優(yōu)點(diǎn)。 但是決策樹(shù)其實(shí)遠(yuǎn)不止這么簡(jiǎn)單,常用的決策樹(shù)算法有ID3算法、C4.5算法、CART算法和隨機(jī)森林等,由于本章重點(diǎn)不是決策樹(shù),因此這里就不過(guò)多闡述了,有興趣的讀者可以自行查閱相關(guān)資料。 現(xiàn)在讓我們進(jìn)入正題:貝葉斯模型。貝葉斯思想的最初提出者如下圖所示——18世紀(jì)英國(guó)數(shù)學(xué)家托馬斯·貝葉斯(Thomas Bayes)。 貝葉斯模型的核心思想是貝葉斯定理,這源于他生前為解決一個(gè)“逆概”問(wèn)題而寫(xiě)的一篇文章,而這篇文章是在他死后才由他的一位朋友發(fā)表出來(lái)的。 在貝葉斯寫(xiě)這篇文章之前,人們已經(jīng)能夠計(jì)算“正向概率”,如“假設(shè)袋子里面有N個(gè)白球,M個(gè)黑球,你伸手進(jìn)去摸一次,摸出黑球的概率是多少”。 而逆向概率問(wèn)題是相反的一類(lèi)問(wèn)題,比如“如果事先并不知道袋子里面黑白球的比例,而是閉著眼睛摸出一個(gè)(或好幾個(gè))球,觀察這些取出來(lái)的球的顏色之后,我們?nèi)绾瓮茰y(cè)此袋子里面的黑白球的比例?” 貝葉斯定理的思想出現(xiàn)在18世紀(jì),但真正大規(guī)模使用發(fā)生在計(jì)算機(jī)出現(xiàn)之后。因?yàn)檫@個(gè)定理需要大規(guī)模的數(shù)據(jù)計(jì)算推理才能體現(xiàn)效果,它在很多計(jì)算機(jī)應(yīng)用領(lǐng)域中都大有作為,如自然語(yǔ)言處理、機(jī)器學(xué)習(xí)、推薦系統(tǒng)、圖像識(shí)別、博弈論,等等。 那么,我們可以使用貝葉斯模型來(lái)解決什么現(xiàn)實(shí)問(wèn)題呢?以下是一個(gè)經(jīng)典的彩球抽獎(jiǎng)問(wèn)題。 這是一個(gè)猜謎拿獎(jiǎng)游戲,已知有A、B兩個(gè)桶,A中有紅球3個(gè),白球1個(gè);B中有紅球2個(gè),白球2個(gè)?,F(xiàn)在我們隨機(jī)選擇一個(gè)桶,每次取出一個(gè)球并放回,判斷反復(fù)4次后該桶是A還是B。 這其實(shí)是一個(gè)以小見(jiàn)大的問(wèn)題。就像我們看現(xiàn)實(shí)世界,總是只能看到這個(gè)現(xiàn)實(shí)世界中的一部分表現(xiàn)形式(摸到了幾個(gè)球或是什么顏色),但是不知道這個(gè)表現(xiàn)形式后面的本質(zhì)(到底是哪一個(gè)桶)。當(dāng)面對(duì)這類(lèi)問(wèn)題的時(shí)候貝葉斯模型就非常有用了。 貝葉斯模型是所有使用貝葉斯定理思想的模型的統(tǒng)稱(chēng),本文主要講解最簡(jiǎn)單的樸素貝葉斯分類(lèi)器。不過(guò)考慮到可能有讀者不太熟悉或者忘記了概率論,我們先來(lái)回顧一下基本概率論知識(shí),這樣才能理解貝葉斯定理。 第1個(gè)概念是先驗(yàn)概率。首先我們將A事件發(fā)生的概率寫(xiě)作P(A),稱(chēng)之為A的先驗(yàn)概率。所謂先驗(yàn)概率,就是根據(jù)以往的經(jīng)驗(yàn)得到的概率。那么P(B)就是B的先驗(yàn)概率了。如果用文氏圖表示,圖2-3中A圈就表示A事件的樣本集合,B圈就是B事件的樣本集合。 ▲圖2-3 樣本文氏圖(1) 第2個(gè)概念是條件概率。所謂條件概率就是在另一個(gè)事件發(fā)生的條件下,某事件發(fā)生的概率,比如P(A|B)表示在B事件發(fā)生的條件下,A發(fā)生的概率;而P(B|A)就是在A事件發(fā)生條件下,B事件發(fā)生的概率。然后還有一個(gè)概念是聯(lián)合概率,比如P(A∩B)表示A和B事件同時(shí)發(fā)生的概率。 我們來(lái)看圖2-4,其中A和B交叉的部分就是A和B的聯(lián)合概率,那么條件概率呢?就是交叉部分在A和B圈子里各占的比例,如果在A里,就是A事件發(fā)生情況下B事件發(fā)生的概率,如果在B里則反之。 ▲圖2-4 樣本文氏圖(2) 在了解基本的概率論知識(shí)后再來(lái)學(xué)習(xí)貝葉斯公式。貝葉斯公式很簡(jiǎn)單,就是B發(fā)生條件下,A事件發(fā)生的概率,可以通過(guò)A事件發(fā)生的條件下,B事件發(fā)生的條件概率或A的先驗(yàn)概率和B的先驗(yàn)概率計(jì)算出來(lái): 那么這個(gè)公式到底有什么用呢? 舉個(gè)例子,假如我們想要檢查郵箱中是否存在垃圾郵件,最簡(jiǎn)單的方法是根據(jù)郵件中是否存在某些關(guān)鍵詞來(lái)做判斷。但實(shí)際情況是,并不是所有涉及某個(gè)關(guān)鍵詞的郵件都是垃圾郵件。所以我們就可以做出一個(gè)假設(shè):垃圾郵件中關(guān)鍵詞的出現(xiàn)頻率是有規(guī)律的。 根據(jù)這個(gè)假設(shè),我們可以收集一批垃圾郵件和一批正常郵件,統(tǒng)計(jì)一下所有郵件中包含關(guān)鍵詞的頻率,垃圾郵件的出現(xiàn)頻率以及關(guān)鍵詞在垃圾郵件中的出現(xiàn)頻率。 其中P(A)是垃圾郵件的出現(xiàn)頻率,P(B)是關(guān)鍵詞的出現(xiàn)頻率,P(B|A)就是垃圾郵件中的關(guān)鍵詞出現(xiàn)頻率。那么由貝葉斯公式我們就可以推算出P(A|B),也就是存在特定關(guān)鍵詞時(shí)某封郵件是垃圾郵件的概率了。 我們知道,我們平時(shí)只能觀測(cè)到現(xiàn)實(shí)中某些現(xiàn)象的表現(xiàn)形式,正如我們只能知道垃圾郵件中關(guān)鍵詞的出現(xiàn)頻率。但是,我們總是希望能夠通過(guò)現(xiàn)象去推斷出事物的本質(zhì),而貝葉斯模型正是這種模型,讓我們可以通過(guò)某些容易計(jì)算的概率去了解某些事物內(nèi)在性質(zhì)的概率。而通過(guò)收集大量的數(shù)據(jù),則可以讓貝葉斯這種概率類(lèi)的模型更加準(zhǔn)確。 不過(guò)這里還有個(gè)問(wèn)題,在實(shí)際情況中會(huì)有很多的屬性(也就是特征),比如判斷一封郵件是不是垃圾郵件,肯定不只有一個(gè)關(guān)鍵詞,因此我們要考慮所有可能關(guān)鍵詞出現(xiàn)的概率。 這個(gè)問(wèn)題怎么處理呢?這個(gè)時(shí)候我們就要對(duì)公式進(jìn)行變換,需要計(jì)算在B1~Bn多個(gè)事件同時(shí)發(fā)生的概率下A事件發(fā)生的概率(也就是根據(jù)多個(gè)關(guān)鍵詞的出現(xiàn)概率估算某封郵件是垃圾郵件的概率)。 這里的難點(diǎn)在于樣本量比較小,在這種情況下如果直接估算B1到Bn的聯(lián)合概率會(huì)導(dǎo)致存在比較大的誤差。所以,貝葉斯公式給出了一個(gè)假設(shè):假設(shè)各個(gè)事件之間是相互獨(dú)立的,也就是不同的屬性會(huì)獨(dú)立地對(duì)最后的分類(lèi)結(jié)果產(chǎn)生影響。 所以這里我們就可以將聯(lián)合概率變成多個(gè)事件概率的乘積,那個(gè)大大的類(lèi)似于π的符號(hào)就是累乘符號(hào),就像之前提到的累加符號(hào)一樣,是一種數(shù)學(xué)符號(hào)的簡(jiǎn)寫(xiě): 這個(gè)推廣后的公式就是樸素貝葉斯分類(lèi)器的核心。思考一下,假如我們有大量的郵件,里面同時(shí)包含垃圾郵件和正常郵件,我們只要分別估算不同的敏感詞的概率,最后就能計(jì)算得到某封郵件是垃圾郵件的概率,而利用樸素貝葉斯解決其他的問(wèn)題也是同一個(gè)套路。 雖然看起來(lái)都是數(shù)學(xué),但是用起來(lái)還是非常簡(jiǎn)單的。我們可以用樸素貝葉斯分類(lèi)器處理前面所提到的抽獎(jiǎng)問(wèn)題。我們可以通過(guò)計(jì)算知道:
假設(shè)摸到一個(gè)紅球,選擇到A桶的概率為: 所以如果我們摸到2個(gè)紅球,2個(gè)綠球,只需要帶入到上面那個(gè)推廣后的公式里就可以得到結(jié)果了。我們提前訓(xùn)練得到的知識(shí)就是摸到紅球的概率、摸到綠球的概率、在A中摸到紅球或者綠球的概率以及在B中摸到紅球或者綠球的概率。
|
|
來(lái)自: 條山石頭 > 《shuxuewuli》