機器學習(三):樸素貝葉斯+貝葉斯估計+BP人工神經網路習題手算|手工推導與習題計算

孤飛發表於2023-03-28

1.有 1000 個水果樣例. 它們可能是香蕉,橙子或其它水果,已知每個水果的 3 種特性:是否偏長、是否甜、顏色是否是黃色

型別 不長 不甜 黃色 非黃 Total
香蕉 400 100 350 150 450 50 500
橙子 0 300 150 150 300 0 300
其它 100 100 150 50 50 150 200
Total 500 500 650 350 800 200 1000

根據上表資料,分別利用樸素貝葉斯分類貝葉斯估計方法,對一個(長,甜,黃色)水果進行識別,判斷該水果屬於:香蕉,橙子或其它水果哪一類?

解:

條件一致,捨去分母,加上分母可以將 正比於 替換為 等號

\(P(長,甜,黃色)=P(長,甜,黃色∣香蕉)×P(香蕉)+P(長,甜,黃色∣橙子)×P(橙子)+P(長,甜,黃色∣其他水果)×P(其他水果)\)

樸素貝葉斯分類方法:

\(P(香蕉 | 長,甜,黃色)\propto P(長 | 香蕉) * P(甜 | 香蕉) * P(黃色 | 香蕉) * P(香蕉)=\frac{400}{500}\times \frac{350}{500}\times \frac{450}{500}\times \frac{500}{1000}=0.0252\)

\(P(橙子 | 長,甜,黃色) \propto P(長 | 橙子) * P(甜 | 橙子) * P(黃色 | 橙子) * P(橙子)=\frac{0}{300}\times \frac{150}{300}\times \frac{300}{300}\times \frac{300}{1000}=0.0\)

\(P(其它 | 長,甜,黃色) \propto P(長 | 其它) * P(甜 | 其它) * P(黃色 | 其它) * P(其它)=\frac{100}{200}\times \frac{150}{200}\times \frac{50}{200}\times \frac{200}{1000}=0.01875\)

直接選擇最大機率值就好了,即根據樸素貝葉斯分類,該水果屬於香蕉.

貝葉斯估計方法:

設平滑引數\(a\)為1,其中特徵可能數\(k\)都為2

\(P(香蕉 | 長,甜,黃色)\propto P(長 | 香蕉) * P(甜 | 香蕉) * P(黃色 | 香蕉) * P(香蕉)=\frac{400+1}{500+2}\times \frac{350+1}{500+2}\times \frac{450+1}{500+2}\times \frac{500}{1000}=0.025089\)

\(P(橙子 | 長,甜,黃色) \propto P(長 | 橙子) * P(甜 | 橙子) * P(黃色 | 橙子) * P(橙子)=\frac{0+1}{300+2}\times \frac{150+1}{300+2}\times \frac{300+1}{300+2}\times \frac{300}{1000}=0.0\)

\(P(其它 | 長,甜,黃色) \propto P(長 | 其它) * P(甜 | 其它) * P(黃色 | 其它) * P(其它)=\frac{100+1}{200+2}\times \frac{150+1}{200+2}\times \frac{50+1}{200+2}\times \frac{200}{1000}=0.01875\)

結果依然不變,即根據樸素貝葉斯估計,該水果屬於香蕉.

解析:

首先,我們需要使用貝葉斯定理計算在給定(長,甜,黃色)水果的情況下,該水果屬於每個類別的機率。由於在這個問題中每個特徵是二元的(要麼是,要麼不是),因此我們可以使用樸素貝葉斯分類方法。對於一個測試水果,我們需要計算以下每個類別的條件機率,從而確定它最可能屬於哪個類別:

\(P(香蕉 | 長,甜,黃色) \propto P(長 | 香蕉) * P(甜 | 香蕉) * P(黃色 | 香蕉) * P(香蕉)\)

\(P(橙子 | 長,甜,黃色) \propto P(長 | 橙子) * P(甜 | 橙子) * P(黃色 | 橙子) * P(橙子)\)

\(P(其它 | 長,甜,黃色) \propto P(長 | 其它) * P(甜 | 其它) * P(黃色 | 其它) * P(其它)\)

其中\(P(類別)\)是每個類別的先驗機率,可以透過將對應行中的總數除以總樣本數進行計算。例如,對於香蕉類別,\(P(香蕉) = 500/1000 = 0.5\).

而條件機率\(P(特徵 | 類別)\)可以透過對應的條目計算,例如對於“長”特徵和香蕉類別,\(P(長 | 香蕉)= 400/500 = 0.8\)

因此,對於一個(長,甜,黃色)水果,每個類別的樸素貝葉斯得分如下:

類別 香蕉 橙子 其它
得分 0.25200 0.00000 0.01875

因此,該水果最有可能屬於香蕉類別。

然而,樸素貝葉斯分類方法受極端資料點的影響較大,因此我們可以使用貝葉斯估計方法來緩解這種情況。具體來說,對於每個類別的每個特徵,我們可以引入一個小的平滑引數進行修正。假設平滑引數為a,那麼對於任意特徵x和類別y,我們可以按照以下方式計算條件機率:

\(P(x | y) = \frac{count(x, y) + a}{count(y) + a * NumPossibleValues(x)}\)

其中,\(count(x, y)\)是在y類別下x特徵的計數\(count(y)\)是y類別的樣本總數,\(NumPossibleValues(x)\)是x特徵可能的取值,即2。

選擇a的值通常是根據經驗確定的,但在這裡我們可以使用a = 1。

使用貝葉斯估計方法進行相同的分類,我們得到以下樸素貝葉斯估計得分表:

類別 香蕉 橙子 其它
得分 0.25089 0.00049 0.01887

在這種情況下

附錄:

樸素貝葉斯分類是基於貝葉斯定理的一種分類演演算法,它假設各個特徵之間相互獨立,因此被稱為“樸素”。

樸素貝葉斯分類的計算流程如下:

  1. 準備訓練資料集,包括特徵和對應的類別標籤。

  2. 計算每個類別出現的機率 \(P(Y)\),並計算每個特徵在每個類別下的機率 \(P(X_i|Y)\),即給定類別 \(Y\) 的條件下,每個特徵 \(X_i\) 出現的機率。

  3. 對於一個新的樣本,計算其屬於每個類別的條件機率 \(P(Y|X)\),即在給定特徵 \(X\) 的情況下,屬於類別 \(Y\) 的機率。根據貝葉斯定理,有:

    \(P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)}\)

    其中,\(P(X|Y)\) 是根據訓練資料估算出的在類別 \(Y\) 下特徵 \(X\) 出現的條件機率,\(P(Y)\) 是訓練資料中類別 \(Y\) 出現的機率,\(P(X)\) 是特徵 \(X\) 的邊緣機率,可以透過\(P(X)=\sum_{Y}P(X|Y)P(Y)\)計算得到。

  4. 根據上述公式計算每個類別下給定樣本的條件機率,確定樣本所屬的類別。

如果給出的是多個特徵,樸素貝葉斯分類的計算方式和單個特徵相同,只是需要將所有特徵的條件機率相乘。

具體來說,設一個樣本的特徵向量為 \(X=(X_1,X_2,\cdots,X_n)\),其中 \(n\) 是特徵的數量。樸素貝葉斯模型假設特徵之間相互獨立,因此可以將樣本屬於類別 \(Y\) 的條件機率表示為:

\[P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}=\frac{P(Y)\prod_{i=1}^{n}P(X_i|Y)}{P(X)} \]

其中,\(P(Y)\) 是類別 \(Y\) 出現的機率,可以透過訓練集中出現類別 \(Y\) 的樣本數佔總樣本數的比例進行估計;\(P(X_i|Y)\) 是給定類別 \(Y\) 的條件下特徵 \(X_i\) 出現的機率,可以透過訓練集中出現類別 \(Y\) 且特徵 \(X_i\) 出現的樣本數佔出現類別 \(Y\) 的樣本數的比例進行估計。

\(P(X)\) 是特徵向量 \(X\) 的邊緣機率,可以透過對所有可能的類別 \(Y\) 進行求和得到:

\[P(X)=\sum_{Y}P(Y)\prod_{i=1}^{n}P(X_i|Y) \]

然後,將計算得到的 \(P(Y|X)\) 按照機率從大到小排序,通常選擇機率最大的類別作為樣本所屬的類別。

貝葉斯估計方法,也稱為拉普拉斯平滑(Laplace smoothing),是貝葉斯分類器中一種常用的平滑方法。它的主要思想是對於沒有在訓練資料中出現過的特徵值,仍然分配一個非零的機率值,以避免在計算機率時出現分母為零的情況。

具體來說,設某個特徵在訓練資料集中出現的次數為 \(N\),特徵的可能取值個數為 \(k\),則在貝葉斯估計中,我們將原本的頻率估計公式 \(P(X = x_i|Y = y_j) = \frac{N_{i,j}}{N_j}\) 改為:

\(P_{\text{smooth}}(X = x_i|Y = y_j) = \frac{N_{i,j} + \alpha}{N_j + \alpha k}\)

其中,\(N_{i,j}\) 表示在訓練資料集中,特徵 \(X = x_i\) 且標籤 \(Y = y_j\) 的樣本數,\(N_j\) 表示標籤為 \(Y = y_j\) 的樣本數,\(\alpha\) 是一個平滑引數,通常取值為 1。這樣,在計算未出現過的特徵值的機率時,分子仍然為 1,分母不為零,從而避免了出現無法計算的情況。

貝葉斯估計方法的優點是可以有效地避免過擬合,提高模型的泛化能力。但是,在實際應用中,由於使用了額外的引數 \(\alpha\),需要進行引數調整,否則可能會影響模型的表現。

相關文章