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 |
在這種情況下
附錄:
樸素貝葉斯分類
是基於貝葉斯定理的一種分類演演算法,它假設各個特徵之間相互獨立,因此被稱為“樸素”。
樸素貝葉斯分類的計算流程如下:
-
準備訓練資料集,包括特徵和對應的類別標籤。
-
計算每個類別出現的機率 \(P(Y)\),並計算每個特徵在每個類別下的機率 \(P(X_i|Y)\),即給定類別 \(Y\) 的條件下,每個特徵 \(X_i\) 出現的機率。
-
對於一個新的樣本,計算其屬於每個類別的條件機率 \(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)\)計算得到。
-
根據上述公式計算每個類別下給定樣本的條件機率,確定樣本所屬的類別。
如果給出的是多個特徵,樸素貝葉斯分類的計算方式和單個特徵相同,只是需要將所有特徵的條件機率相乘。
具體來說,設一個樣本的特徵向量為 \(X=(X_1,X_2,\cdots,X_n)\),其中 \(n\) 是特徵的數量。樸素貝葉斯模型假設特徵之間相互獨立,因此可以將樣本屬於類別 \(Y\) 的條件機率表示為:
其中,\(P(Y)\) 是類別 \(Y\) 出現的機率,可以透過訓練集中出現類別 \(Y\) 的樣本數佔總樣本數的比例進行估計;\(P(X_i|Y)\) 是給定類別 \(Y\) 的條件下特徵 \(X_i\) 出現的機率,可以透過訓練集中出現類別 \(Y\) 且特徵 \(X_i\) 出現的樣本數佔出現類別 \(Y\) 的樣本數的比例進行估計。
\(P(X)\) 是特徵向量 \(X\) 的邊緣機率,可以透過對所有可能的類別 \(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\),需要進行引數調整,否則可能會影響模型的表現。