正態分布與貝葉斯-連續樣本

看貝葉斯的時候公式比較復雜,先驗概率,后驗概率還有似然概率,還有邊緣概率還是有點不友好,這里主要從一個簡單的例子出手,寫一下貝葉斯是如何運行的。出于簡單,這里的分布函數采用高斯分布。

分布函數

首先看一下正態分布,它的概率密度可以用如下的函數表示

正態分布與貝葉斯-連續樣本的圖1

屏幕截圖 2022-03-08 140407.png

對此,我們可以用如下的代碼描述

def nor_dis(x,segma,miu):

    f=(1/np.sqrt(2*math.pi))*np.exp(-((x-miu)**2)/2/segma/segma)
    return f

a = np.arange(-5,5,0.1)e = 0 # 均值segama = 0.5 #方差

b = nor_dis(a,segama,e)

import matplotlib.pyplot as plt
plt.plot(a, b)
plt.show()

這里隨便做一個圖驗證一下

屏幕截圖 2022-03-08 140616.png

顯然,對于一個樣本特征,我們只需要計算出他的均值和方程就可以計算任意給定值的概率分布了,比如我們給一個樣本

樣本編號 特征A 特征B






1 5 3
2 2 2
3 1 1
4 0 8
5 6 5

我們對其中的特征1進行分析,首先計算方差(5.36)和均值(2.8),把這兩個值帶入可以得到正態分布函數,然后可以計算這個分布函數下任何一個比如特征里面的4對應的概率為(0.389068525000229),這個條件下的分布概率如下,可見4并沒有出現在特征1中,但是也計算除了4的概率,同樣的可以用這種方法對特征2進行處理。這里計算出的概率就對應著貝葉斯中的似然概率。

貝葉斯

貝葉斯公式如下

正態分布與貝葉斯-連續樣本的圖4
貝葉斯公式

同樣的這里我們假設一個樣本如下表所示。

樣本編號 特征A 特征B 標簽
1 1 2 黃金
2 0 4 白銀
3 2 3 黃金
4 1.5 4 黃金
5 0.5 4 白銀

除了上面的樣本之外,我們還有一個樣本2 ,5,現在就想知道這個樣本是黃金還是白銀,怎么操作呢?

首先分別計算特征A和特征B的均值和方程,可以發現特征1的均值為1,方差為0.5;特征2的均值為3.4,方差為0.64。同時,我們發現黃金的概率為60%,白銀的概率為40%這個概率叫先驗概率。

現在計算樣本的概率,即把2帶入特征A的分布函數中得到概率0.05399096651318806,把5帶入特征B的分布函數中可以知道概率為0.01752830049356853。因此這里實際上計算出來了P(黃金)、P(白銀)、P(A)、P(B),我們把公式再寫到下面

正態分布與貝葉斯-連續樣本的圖5

將計算的列在下面







P(黃金| A,B) P(A|黃金) P(B|黃金) P(黃金) P(A) P(B)



0.6 0.05399096651318806 0.01752830049356853
P(白銀| A,B) P(A|白銀) P(B|黃金) P(白銀) P(A) P(B)



0.4 0.05399096651318806 0.01752830049356853

現在還缺少表格中的前面兩個,因此回到第一張表,計算選取黃金的樣本下的均值與方程,即計算下面兩個表的均值和方差

表3、只存在黃金情況下的樣本

樣本編號 特征A 特征B 標簽
1 1 2 黃金
3 2 3 黃金
4 1.5 4 黃金

表4、只考慮白銀存在情況下的樣本

樣本編號 特征A 特征B 標簽
2 0 4 白銀
5 0.5 4 白銀

當然這里的樣本量有點少,同樣的把方差和均值帶入分布函數里面,可以計算出黃金和白銀兩種情況下各自的概率密度分布函數,帶入樣本值(2,5)計算對應的概率P(A|黃金)、P(A|白銀)、P(B|黃金)、P(A|黃金)

最后,將計算的值帶入公式就可以計算出這個值(2,5)下是黃金還是是白銀的概率,那個大就是哪個。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1