首页
/
每日頭條
/
生活
/
貝葉斯決策論
貝葉斯決策論
更新时间:2024-04-28 15:53:35

葉斯是機器學習的核心方法之一,貝葉斯方法源于他生前為解決一個“逆概”問題寫的一篇文章,而這篇文章是在他死後才由他的一位朋友發表出來的。 在貝葉斯寫這篇文章之前,人們已經能夠計算“正向概率”,如“假設袋子裡面有N個白球,M個黑球,你伸手進去摸一把,摸出黑球的概率是多大”。 而一個自然而然的問題是反過來:“如果我們事先并不知道袋子裡面黑白球的比例,而是閉着眼睛摸出一個(或好幾個)球,觀察這些取出來的球的顔色之後,那麼我們可以就此對袋子裡面的黑白球的比例作出什麼樣的推測”。這就是所謂的逆概問題。 現實世界本身就是不确定的,人類的觀察能力是有局限性的,我們日常所觀察到的隻是事物表面上的結果,比如從袋子中取球,我們往往隻能知道從裡面取出來的球是什麼顔色,而并不能直接看到袋子裡面實際的情況。這個時候,就需要提供一個猜測。 樸素貝葉斯是貝葉斯決策理論的一部分。

1、貝葉斯公式: 條件概率(Conditional probability),就是指在事件B發生的情況下,事件A發生的概率,用P(A|B)來表示。 貝葉斯公式是用來描述兩個條件概率之間的關系,比如 P(A|B) 和 P(B|A)。

貝葉斯決策論(貝葉斯理論)1

從上圖可以看出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。 解釋為:1)在事件B發生的情況下,事件A發生的概率就是P(A∩B)除以P(B) 2)在事件A發生的情況下,事件B發生的概率就是P(A∩B)除以P(A) 如上公式也可變形為:

貝葉斯決策論(貝葉斯理論)2

或者也可以得到P(B|A)的計算,這公式也稱為貝葉斯法則。通過已知的三個概率值來計算未知的概率值。在貝葉斯法則中,每個名詞都有約定俗成的名稱:

  • P(A)是A的先驗概率或邊緣概率。之所以稱"先驗"是因為它不考慮任何B方面的因素,即在B事件發生之前,我們對A事件概率的一個判斷。
  • P(A|B)是已知B發生後A的條件概率,在B事件發生之後,我們對A事件概率的重新評估,也被稱作A的後驗概率。
  • P(B|A)是已知A發生後B的條件概率,也被稱作B的後驗概率。
  • P(B)是B的先驗概率或邊緣概率,也作标準化常量(normalized constant)
  • P(B|A)/ P(B)稱為"可能性函數"(Likelyhood),這是一個調整因子,使得預估概率更接近真實概率。
  • 後驗概率=先驗概率*調整因子

2、貝葉斯公式計算案例

舉例1:

兩個一模一樣的容器,一号容器有30個紅球和10個黑球,二号容器紅球和黑球各20個。現在随機選擇一個容器,從中摸出一各球,發現是紅球。請問這個紅球來自一号容器的概率有多大? 我們假定,A1表示一号容器,A2表示二号容器。由于這兩個容器是一樣的,所以P(A1)=P(A2),也就是說,在取出紅球之前,這兩個容器被選中的概率相同。因此,P(A1)=0.5,我們把這個概率就叫做"先驗概率",即沒有做實驗之前,來自一号容器的概率是0.5。再假定,B表示紅球,所以問題就變成了在已知B的情況下,來自一号容器的概率有多大,即求P(A1|B)。我們把這個概率叫做"後驗概率",即在B事件發生之後,對P(A1)的修正。 根據條件概率公式, 已知P(A1)等于1/2,P(B|A1)為一号容器中取出紅球的概率,為3/4,那麼求出P(B)就可以得到答案。而P(B)為取得紅球的概率,為5/8。 根據全概率公式:P(A1|B)=P(A1)*P(B|A1)/P(B)=3/5。 也就是說,取出紅球之後,A1事件的可能性得到了增強。

舉例2:

一座别墅在過去的 20 年裡一共發生過 2 次被盜,别墅的主人有一條狗,狗平均每周晚上叫 3 次,在盜賊入侵時狗叫的概率被估計為 0.9,問題是:在狗叫的時候發生入侵的概率是多少? 我們假設 A 事件為狗在晚上叫,B 為盜賊入侵,則以天為單位統計,P(A) = 3/7,P(B) = 2/(20*365) = 2/7300,P(A|B) = 0.9, 按照全概率公式很容易得出結果:P(B|A) = 0.9*(2/7300) / (3/7) = 0.00058

舉例3:

已知某種疾病的發病率是0.001,即1000人中會有1個人得病。現有一種試劑可以檢驗患者是否得病,它的準确率是0.99,即在患者确實得病的情況下,它有99%的可能呈現陽性。它的誤報率是5%,即在患者沒有得病的情況下,它有5%的可能呈現陽性。現有一個病人的檢驗結果為陽性,請問他确實得病的可能性有多大? 假定A事件表示得病,那麼P(A)為0.001。這就是"先驗概率",即沒有做試驗之前,我們預計的發病率。 再假定B事件表示陽性,那麼要計算的就是P(A|B)。這就是"後驗概率",即做了試驗以後,對發病率的估計。P(A|B)=P(A)*P(B|A)/P(B)=0.001*0.99/0.05=0.0198。我們得到了一個驚人的結果,P(A|B)約等于0.019。也就是說,即使檢驗呈現陽性,病人得病的概率,也隻是從0.1%增加到了2%左右。這就是所謂的"假陽性",即:即使檢驗陽性結果完全不足以說明病人得病。 為什麼這種檢驗的準确率高達99%,但是可信度卻不到2%?答案是與它的誤報率太高有關。 如果誤報率從5%降為1%,請問病人得病的概率會變成多少?,計算下來為0.099,仍然不高。 假設我們現在計算假陰性,即病人檢驗出來陰性,實際得病的概率。假設此時B為陰性。P(A|B)=P(A)*P(B|A)/P(B)=0.001*0.01/0.05=0.0002。

舉例4:

一所學校裡面有 60% 的男生,40% 的女生。男生總是穿長褲,女生則一半穿長褲一半穿裙子。 有了這些信息之後我們可以容易地計算“随機選取一個學生,他(她)穿長褲的概率和穿裙子的概率是多大”,這個就是前面說的“正向概率”的計算。 P(Pants)=0.6*1 0.4*0.5=0.8 然而,假設你走在校園中,迎面走來一個穿長褲的學生(很不幸的是你高度近似,你隻看得見他(她)穿的是否長褲,而無法确定他(她)的性别),你是否能夠推斷出他(她)是女生的概率? P(Girl|Pants) = P(Girl) * P(Pants|Girl) / P(Pants) =0.4*0.5/0.8=0.25

3、貝葉斯決策理論:

就是在不完全情報下,對部分未知的狀态用主觀概率估計,然後用貝葉斯公式對發生概率進行修正,最後再利用期望值和修正概率做出最優決策。

貝葉斯決策理論方法是統計模型決策中的一個基本方法,其基本思想是:

  • 已知類條件概率密度p(x | wi)參數表達式和先驗概率p(wi)。
  • 利用貝葉斯公式轉換成後驗概率。
  • 根據後驗概率大小進行決策分類。

其中,類條件概率密度:假定x是一個連續随機變量,其分布取決于類别狀态,表示成p(x|ωi)的形式,這就是“類條件概率密度”函數,即在已知某類别的特征空間中,出現特征值X的概率密度,或解釋成第ωi類樣品其屬性x是如何分布的,有時也稱為狀态條件概率密度。

舉例:

假設有一個數據集,由兩類數據組成,數據分布如下:其中紫色為類别1,綠色為類别2

貝葉斯決策論(貝葉斯理論)3

用p1(x,y)表示數據點(x,y)屬于類别I的概率,用p2(x,y)表示數據點(x,y)屬于類别2的概率。那麼對于一個新的數據點(x,y),可以用下面的規則來判斷它的類别:

  • 如果p1(x,y)>p2(x,y),那麼類别1
  • 如果p1(x,y)<p2(x,y),那麼類别2

也就是說我們會選擇高概率對應的類别,這就是貝葉斯決策李璐的核心思想,即選擇最高概率決策。

4、貝葉斯常見應用案例

案例1:拼寫糾錯檢查

當用戶輸入了一個不在字典中的單詞,我們需要去猜測:“這個家夥到底真正想輸入的單詞是什麼呢?”用形式化的語言來叙述,就是我們需要求得:

P(我們猜測他想輸入的單詞 | 他實際輸入的單詞)

比如用戶輸入thew,那麼猜測他到底想輸入the,還是thaw,還是其他的單詞?到底哪一個單詞的可能性比較大?這時候我們就可以用貝葉斯去求出每個詞語的可能性。

不妨把我們的猜測記為h1、h2、...hn,他們都屬于一個有限且離散的猜測空間H(單詞總共就隻有那麼多,H代表hypothesis),将用戶實際輸入的單詞記為D(D代表data,即觀測數據),于是問題轉為:

P(我們的猜測1 | 他實際輸入的單詞)可以表示為P(h1|D),依次對于猜測2,則表示為P(h2|D),我們需要計算這些概率值,取最大的。

把所有的猜測先統一記為P(H|D),運用一次貝葉斯公式,我們得到:P(H|D) = P(H) * P(D|H) / P(D)

因為不論對哪一個具體猜測h1、h2、...hn,其中的P(D)都是一樣的,所以在計算或比較P(h1 | D) 和 P(h2 | D) 的時候我們可以忽略P(D)這個常數。把公式簡化為:

P(H | D) ∝ P(H) * P(D | H),其中∝代表正比例于。

這個式子的抽象含義是:對于給定觀測數據,猜測是好是壞,取決于“這個猜測本身獨立的可能性大小(先驗概率,Prior )”和“這個猜測生成我們觀測到的數據的可能性大小”(似然,Likelihood )的乘積。

具體到上面的 thew 例子上,就是用戶實際是想輸入 the 的可能性大小取決于 the 本身在詞彙表中被使用的可能性(頻繁程度)大小(先驗概率)和 想打 the 卻打成 thew 的可能性大小(似然)的乘積。

解決問題的方法變為,對于各種猜測,計算下P(H) * P(D | H) 這個值,然後取值為最大的那個猜測即可。

來比較哪個模型最為靠譜,有兩種思路:

  • 最大似然:最符合觀測數據的(即 P(D | H) 最大)最優優勢
  • 奧卡姆剃刀:先驗概率p(H)較大的模型有較大的優勢。

舉一個極端的極大似然的案例:假設我們投擲硬币,隻投了一次,觀察到的是“正面”,根據最大似然估計的精神,我們應該猜測這枚硬币投擲出“正面”的概率為1,因為這個才是最大化的P(D | h) 的那個猜測。

而用奧卡姆剃刀的思想,則認為P(D | H) 大并不代表這個猜測就是更好,還需要你的p(H)足夠大。所謂奧卡姆剃刀精神就是說:如果兩個理論具有相似的解釋力度,那麼優先選擇那個更簡單的(往往也正是更平凡的,更少繁複的,更常見的)。

附:奧卡姆剃刀:

假設平面上 N 個點總是可以用 N-1 階多項式來完全拟合,當 N 個點近似但不精确共線的時候,用 N-1 階多項式來拟合能夠精确通過每一個點,然而用直線來做拟合/線性回歸的時候卻會使得某些點不能位于直線上。到底哪個好呢,多項式還是直線?一般地說肯定是越低階的多項式越靠譜(當然前提是也不能忽視“似然”P(D | h) ,明擺着一個多項式分布您愣是去拿直線拟合也是不靠譜的,這就是為什麼要把它們兩者乘起來考慮),原因之一就是低階多項式更常見,先驗概率( P(h) )較大(原因之二則隐藏在 P(D | h) 裡面),這就是為什麼我們要用樣條來插值,而不是直接搞一個 N-1 階多項式來通過任意 N 個點的原因。

案例2:拼寫糾錯檢查

假設收到一個郵件,需要判斷郵件是垃圾郵件還是正常郵件?

用P(D)來表示這封郵件。而郵件是由N多個單詞組成的。用h 來表示垃圾郵件,用h-來表示正常郵件。則有如下公式:

P(h |D) = P(h ) * P(D|h ) / P(D)

P(h-|D) = P(h-) * P(D|h-) / P(D)

p(h )為是垃圾郵件的先驗概率。比如在1000封郵件中,垃圾郵件為100篇,那p(h )=100/1000=0.1P(D|h )為當這封郵件是垃圾郵件時,含有的D郵件的這些詞的概率,而D因為是确定的郵件,所以郵件中的詞語也是确定的。隻需要看垃圾郵件的詞語的概率。

現在D裡面含有N個單詞d1、d2、d3...dn。

P(D|h )=P(d1,d2,...dn | h ),也即在垃圾郵件中出現跟我們這封郵件一模一樣的概率是多大。這麼求的話,太嚴格,概率就很小了,判斷也很困難,可以做如下擴展:

P(d1,d2,...dn | h )轉化為P(d1 | h )*P(d2 | h )*...P(dn | h ).

需要把這個原始的貝葉斯問題轉化成樸素貝葉斯,即假設各個特征之間相互獨立,且互相沒有影響。

也即每個單詞之間是沒有關系的。這時,隻需要求出每個di在垃圾郵件中出現的頻率,即可得到P(h |D)。

但實際中di之間是有影響的,我們隻需要把影響考慮降到最低,能解決問題即可

總結:

貝葉斯公式為利用搜集到的信息對原有判斷進行修正提供了有效手段。在采樣之前,經濟主體對各種假設有一個判斷(先驗概率),關于先驗概率的分布,通常可根據經濟主體的經驗判斷确定(當無任何信息時,一般假設各先驗概率相同),較複雜精确的可利用包括最大熵技術或邊際分布密度以及相互信息原理等方法來确定先驗概率分布。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
Copyright 2023-2024 - www.tftnews.com All Rights Reserved