1. 程式人生 > >貝葉斯估計原理及流程

貝葉斯估計原理及流程

知乎上有個專題叫:你對貝葉斯統計有怎樣的理解?本篇儘量通俗點理解下貝葉斯統計~_~

還是沿用經典案例:

一種癌症,得了這個癌症的人被檢測出為陽性的機率為90%,未得這種癌症的人被檢測出陰性的機率為90%,而人群中得這種癌症的機率為1%,一個人被檢測出陽性,問這個人得癌症的機率為多少?

假設 A 表示事件 “測出陽性”,  B1 表示“得癌症”,B2 表示“未得癌症”,那麼:

P(A|B_{1}) = 0.9, P(A|B_{2}) = 0.1, P(B_{1}) = 0.01, P(B_{2}) = 0.99

再來看一下聯合概率:人群中檢測為陽性並且得癌症的機率:

P(B_{1},A) = P(B_{1}) \cdot P(A|B_{1}) = 0.01 \times 0.9 = 0.009

檢測為陽性但未得癌症的概率:

P(B_{2},A) = P(B_{2}) \cdot P(A|B_{2}) = 0.99 \times 0.1 = 0.099

下面開始貝葉斯的功力所在了:“怎樣求出在檢測出陽性的前提下得癌症的概率呢?”根據上面的結果, P(B_{1}|A)= =\frac{0.009}{0.099 + 0.009} \approx 0.083
這個問題中:人群中患癌症與否的概率是先驗概率
,先驗概率是已知的,根據觀測值:是否為陽性,來判斷得癌症的後驗概率。



似然函式與最大似然估計:

上面公式中的 f(x|θ) 就是一種似然函式,觀測到樣本x 的分佈是在以某個引數θ為前提下得出來的,只是這個引數是未知的,在統計學裡常用的求該引數的方法就是:最大似然估計了。

假設我們有n個樣本 x_1, x_2, x_3, ..., x_n, 它們每一個變數都對應一個似然函式:

f(x_1|\theta), f(x_2|\theta), ..., f(x_n|\theta)

把這些似然函式乘起來:

lik(\theta) = \prod_{i=1}^{n} f(x_i|\theta)

只要找到令這個函式最大的 θ 值,就是我們想要的引數值了。

樸素貝葉斯:

對於給出的待分類項,求出在此分類項出現的情況下各個類別出現的概率,哪個最大,就認為待分類項屬於哪個類別。即在沒有其它可用的資訊時,選擇條件概率最大的類別。

樸素貝葉斯分類的定義如下:

      1、設為待分類項,a為x的一個特徵屬性。

      2、類別集合 

      3、計算 

      4、去最大概率值 ,則 

     關鍵一步在於如何計算第3步中的條件概率。通常採用的做法是:

      1、找到一個已知分類的待分類項集合,作為訓練樣本集。

      2、統計在各個類別下各特徵屬性的條件概率估計:

           

      3、如果各個特徵屬性是條件獨立的,即符合馬爾科夫模型,則貝葉斯定理成立:

          

      P(x)對於所有類別都是一個常數,所以取極值就變為將分子最大化:

樸素貝葉斯分類的流程:

(1)準備工作階段。主要是根據具體情況確定特徵屬性,並對特徵屬性進行劃分,由人工對一部分待分類項進行分類,形成訓練樣本集合。這一階段的輸入是待分類資料,輸出是特徵屬性和訓練樣本。這一階段需要人工完成的,對整個過程有重要影響,分類器的質量很大程度上由特徵屬性、特徵屬性劃分及訓練樣本的質量決定。

(2)分類器訓練階段。主要是計算每個類別在訓練樣本中的出現頻率及每個特徵屬性劃分對每個類別的條件概率估計,並將結果記錄。其輸入是特徵屬性和訓練樣本,輸出是分類器。

(3)應用階段。使用分類器對待分類項進行分類,輸入分類器和待分類項,輸出待分類項與類別的對映關係。

注:當P(a|y)=0,即某個類別下某個特徵項劃分沒有出現,這會令分類器質量大大降低。為了解決這個問題,通常對沒類別下所有劃分的計數加1,這樣如果訓練樣本集數量充分大時,並不會對結果產生影響,並且解決了上述頻率為0的尷尬局面。