貝葉斯演算法

2022-08-04 08:12:09 字數 1361 閱讀 3026

貝葉斯演算法:

在大學的時候我們都學過貝葉斯公式:

p(b | a) = p(ab) / p(a) = p(a | b)p(b) / p(a)

表明了,在已知a,b共同發生的概率以及事件a發生的概率, 則可以知道在事件a發生的情況下發生事件b的概率。

然後現在我們就可以將這個公式進行應用到工業中去,假設我們現在有很多的訓練資料,這個時候訓練資料裡面有a、b兩個事件將要發生,而a、b分別由各種特徵所構成。這個時候我們可以算出來在a事件中每個特徵發生的概率,以及在b事件中每個特徵所發生的的概率,例如在a事件中特徵v所佔的概率計算公式:在構成能發生a的事件的所有資料s中特徵v的個數佔s的資料的概率,p_v = v_nums / s_nums。在整個訓練資料中,我們可以求出來p(a) = a_nums / all_nums。其中all_nums表示所有資料的數量,a_nums,表示事件a所佔的數量. (1)

當我們算出來了每個事件中,特徵所佔的比例,這個時候來個資料t由各種特徵所構成,這個時候求這個資料t屬於哪個事件,可以通過公式:

p( (a or b) | t) = p((a or b)t) / p(t) = p(t | (a or b) ) *p((a or b)) / p(t) 

這個時候要判斷資料是a or b,因為分母p(t)是一樣的,所以我們只需要求解到分子的大小,哪個概率大則是哪個。

這個時候就用到了樸素這個概念了,因為資料是由各種特徵所構成的,所以樸素貝葉斯假設每個特徵之間是相互獨立的,所以由概率公式知道:

若a,b兩個事件相互獨立,則p(ab)  = p(a) * p(b)

所以t可以由t1,t2,t3...tn個特徵值構成,所以p(t | (a or b)) =  p((t1, t2, t3...tn) | (a or b)) = p(t1| (a or b)) *p(t2 | (a or b))...*p(tn | (a or b)),所以在a的概率為:p(t | a) = p(t1 | a ) * p(t2 | a ) *p(t3 | a )... *p(tn | a)*p(a) (同理p(t | b))因為這個等式相當於y = x是乙個單調遞增的函式,又因為ln也是乙個遞增的函式,而且ln(a * b) = ln a + ln b,兩個遞增函式相互組合仍然是遞增,所以我們我們可以對比兩個概率在對數上面的大小,所以在事件a上面的概率為:ln(p(t | a)) = sum(ln(tn | a)) + ln(p(a))(同理t在事件b上面的概率(注意:b的概率,若是二分類則是(1 -  p(a), 否則另算))),這個時候我們在我們可以判斷資料t屬於事件a or b.(2)

其中:(1)就是需要訓練的部分,算出來三個值,分別為:在事件a中每個特徵的概率,在事件b中每個特徵的概率,以及事件a所發生的概率。

(2)就是**的部分,其中 運用到了樸素的概念,假設每個特徵之間是相互獨立的。

貝葉斯演算法

貝葉斯演算法需要解決的問題 1.正向概率 假設袋子中n白球,m黑球,摸到黑球概率多大 2.逆向概率 事先不知道袋子中黑白球個數,從袋子中摸出乙個或幾個球,觀察這些取出球的顏色,以此來推斷袋中白黑球的比例。為什麼需要貝葉斯 現實世界本身就是不確定的,假設黑白球數量無限大,人類觀察能力有限,我們不可能完...

貝葉斯演算法

總結應用 貝葉斯演算法的目的是解決逆向概率的問題。何為逆向概率?先看看正向概率 袋子裡有m個黑球,n個白球,隨手一模,是黑球的機率是多大。這就是個正向概率問題。逆向概率 袋子裡有兩種球,通過觀察摸出來的球的顏色,推斷袋子中兩種球的比率。逆向概率的作用 是通過有限的資料推斷無限資料的情況,思考 星系距...

貝葉斯演算法

貝葉斯為了解決 逆概 問題提出的 正向概率 袋子裡裝著n個黑球和m個白球,伸手取摸球,摸到黑球和白球的概率有多大 逆向概率 袋子裡前提不知道有黑白球的比例,而是閉著眼睛摸球統計後推測黑球和白球的比例 現實世界本身不確定,人類觀察是有侷限的 我們日常所觀察只是表面,很多東西都是推測。男生總是穿長褲,女...