由於Spark大量利用集群RAM來最大化速度,因此監控它並驗證您的集群設置和分區策略能夠滿足您不斷增長的數據需求非常重要。

一天早上,鮑勃在看到黑客新聞中提到的一種疾病時,決定隨心所欲地進行測試; 沒有其他癥狀,他只是好奇。他說服他的醫生下令進行血液測試,這已被證實是90%準確的。對於10個病人中的9個,它會檢測到這種疾病(但十分之一不會); 同樣,對於10個健康人中的9個,它將不報告疾病(但是10個中的1個將會)。

不幸的是,鮑勃,他的測試是積極的; 鮑勃實際上有這種疾病的可能性是多少?

你可能會說90%,但這是錯誤的。概率和統計學中最常見的謬誤之一是混合了條件概率。給定事件D(「Bob有疾病」)和事件T(「測試為正面」),我們想知道P(D | T) 是什麼: 給定T的條件概率D.但測試結果實際上是給我們P(D | T) - 與P(D | T)不同

事實上,這個問題並沒有提供足夠的細節來回答這個問題。缺少的一個重要細節是疾病在人群中的流行 ; 即P(D)的價值 不受任何限制。假設這是一種中等常見的疾病,2%的患病率。

為了解決這個問題,沒有任何聰明的概率公式,我們可以使用基於案例計數的基本技術。假設有一萬人的樣本[1] ; 試驗放在一邊,有多少人患有這種疾病?2%,所以200。

在有這種疾病的人中,90%會檢測陽性,10%會檢測陰性。同樣,沒有疾病的人中,90%會檢測陰性,10%會檢測陽性。圖形:

現在,我們只需要計數。樣本人群中有980 + 180 = 1,160人檢測為陽性。這些人中有180人患有這種疾病。換句話說,鑒於鮑勃處於「測試陽性」人群,他患病的幾率為180/1160 = 15.5%。這低於90%的測試精度; 條件概率通常會產生令人驚訝的結果 為了激發這一點,考慮真陽性(測試陽性的疾病的人)的數量是180,而假陽性的數量(測試陽性的疾病的人數)是980.因此,第二組更大。

條件概率

正如上面所示的例子所表明的那樣,條件概率涉及如下問題:「發生B的事情發生的可能性是什麼?」 而且它們遠非直觀。幸運的是,概率的數學理論為我們提供了必要的精確和嚴謹的工具,以相對優雅的方式推理這些問題。

條件概率P(A | B) 意思是「事件A發生事件B的概率是多少?」 其數學定義是:

注意

  • 顯然,這隻在P(B) > 0 時定義。
  • 這裡,P(A∩B) 是A和B發生的概率。

你第一次看它時,條件概率的定義看起來有點不直觀。為什麼用這種方式建立連接?這是一個我發現很有用的可視化:

黑色方塊中的點代表「宇宙」,我們的整個抽樣空間(我們稱之為S,然後P(S) = 1)。A和B是事件。這裡,P(A) = 30/64,P(B) = 18/64。但是什麼是P(A | B)?讓我們以圖形的方式弄清楚。我們知道,結果是紅色包圍的點之一。我們有什麼機會得到一個藍色的圓點?這是紅色和藍色的點數除以紅色點的總數。隨著這些計數被整個樣本空間的大小歸一化,計算概率; 所有的數字除以64,所以這些分母可以出來; 我們會有:

用語言來說:假設B發生了,A發生的概率是1/2,這在你觀察圖時是有意義的,並且假設事件是均勻分布的(也就是說,沒有點本質上比任何結果更可能是結果其他點)。

對我來說總是有意義的另一種解釋是用分母乘以條件概率的定義的雙方得到:

用話說:我們知道給B發生A的機會; 如果我們乘以B發生的機會,我們就有機會發生AB的事情。

最後,由於P(A∩B) = P(B∩A),我們可以在這些定義中自由地交換AB(畢竟它們是任意標籤)以得到:

等式1

這是我們稍後會用到的一個重要方程。

事件的獨立性

根據定義,兩個事件AB獨立的,如果:

使用條件概率,我們可以提供一個稍微不同的定義。以來:

並且P(A∩B) = P(A)P(B)

只要P(B) > 0,對於獨立的AB,我們有P(A | B) = P(A) ; 換言之,B 不會以任何方式影響A的概率。同樣,我們可以證明對於P(A) > 0,我們有P(B | A) = P(B)

獨立也延伸到事件的補充。回想一下,P(B ^ C) B沒有發生的概率,或1 - P(B) ; 由於條件概率服從通常的概率公理,我們有P(B ^ C | A) = 1 - P(B | A)。那麼,如果AB是獨立的:

因此,B ^ C A無關。類似地,A的補碼與B無關,並且這兩個補碼彼此獨立。

貝葉斯定理

從上面的公式1開始:

並且取右邊的等式並將其除以P(B) (這是正的,根據定義),我們得到貝葉斯定理:

這是一個非常有用的結果,因為它將P(B | A) P(A | B)鏈接起來。回想疾病測試的例子,我們正在尋找P(D | T)。我們可以使用貝葉斯定理:

我們知道P(T | D) P(D),但是P(T)是什麼?你可能會試圖說它是1,因為「 我們知道測試是正面的,」但這是一個錯誤。為了理解為什麼,我們必須深入研究條件概率和無條件概率的含義。

先驗概率和後驗概率

基本上,條件概率有助於我們解決以下問題:

我們如何根據新數據更新我們的信念?

我們看到新數據之前,先驗概率是我們的信念(概率分配給事件)。後驗概率是我們看到新數據後的信念。在貝葉斯方程中,先驗概率簡單地說是無條件概率,而後驗概率是有條件的。這導致了一個關鍵的區別:

  • P(T | D):當我們有關於人的新數據時,測試的後驗概率為正,他們患有該疾病。
  • P(T):在我們知道有關該人的任何事情之前,測試的先驗概率為正。

這應該更清楚地說明為什麼我們不能只分配P(T) = 1。相反,回想一下我們在第一個例子中做的「按事例計數」練習,我們在那裡生成了所有可能性的樹; 讓我們正式確定它。

總概率法則

假設我們有樣本空間小號和一些事件。有時候,通過首先將空間劃分為不相交的部分來更容易地找到B的概率:

那麼,由於不相交的概率,我們得到:

或者,使用公式1:

貝葉斯解決疾病測試的例子

現在,我們擁有了我們需要的一切來為疾病測試示例提供貝葉斯解決方案。回想一下,我們已經知道:

  • P(T | D) = 0.9:測試精度
  • P(D) = 0.02:人群中流行的疾病

現在,我們要計算P(T)。我們將使用全概率定律,以「有疾病」/「無疾病」的空間劃分:

最後,將所有東西都塞進貝葉斯定理:

...這是我們在通過示例中的可能性進行工作時得到的相同結果。

適應多個事件

我們剛剛計算了P(D | T):事件T(患者測試為陽性)的事件D(患者有疾病)的條件概率。這種技術的一個重要擴展是能夠推理多個測試,以及它們如何影響條件概率。我們要計算P(D | T1∩T2),其中T1 T2 是兩個事件用於不同的測試。

我們假設T1 是我們的原始測試。T2 是一個稍微不同的測試,只有80%的準確性。重要的是,測試是 獨立的(他們測試完全不同的東西)[2]。

我們將從一個看似合理的幼稚方法開始。對於T1,我們已經知道P(D | T1) = 0.155。對於T2來說,計算起來也很簡單:

疾病發生率仍然是2%,使用總概率定律得到:

因此:

換句話說,如果一個人在第二次測試中測試結果為陽性,那麼生病的機會只有7.5%。但是如果他們測試兩個測試都是正面的呢?

那麼,因為測試是獨立的,所以我們可以完成組合補充的普通概率技巧。在給定正面測試的情況下,我們將計算這個人沒有生病的概率,然後計算其補數。P(D ^ C | T1) = 1-0.155 = 0.845,P(D ^ C | T2) = 1-0.075 = 0.925。因此:

再次補充,我們得到P(D | T1∩T2) = 1 - 0.782 = 0.218。生病的機會,兩次測試均為正面的可能性為21.8%。

不幸的是,這種計算是錯誤的 - 非常錯誤。你能在閱讀之前發現原因嗎?

我們在條件概率上犯了一個相當普遍的錯誤。給定P(T1 | D) P(T2 | D)的獨立性,我們假定P(T1 | D) P(T2 | D)的獨立性,但這是錯誤的!給出我們具體的例子,甚至很容易理解為什麼。他們兩人的P(D) - 疾病流行率 - 在分子中。改變患病率將會 以完全相同的比例改變 P(T1 | D) P(T2 | D) ; 比如說,增加2倍的流行率會增加2倍的概率。他們非常依賴!

找到P(D | T1∩T2) 的正確方法是從第一原理開始的。T1∩T2 只是另一個事件,所以把它看作是這樣的,並且使用貝葉斯定理,我們得到:

這裡,P(D)仍然是0.02; P(D | T1∩T2) = 0.9×0.8 = 0.72。為了計算分母,我們將再次使用總概率定律:

將它們結合在一起,我們將得到P(D | T1∩T2) = 0.42; 經過兩次正面測試,患病的幾率為42%,比我們的錯誤估計值高出兩倍[3]。

具有條件的貝葉斯定理

由於條件概率滿足所有概率公理,當添加一個條件時,許多定理仍然成立。這裡是事件C帶有額外條件的貝葉斯定理:

換句話說,即使所有事情都以某個事件C為條件,P(A | B)P(B | A) 之間的連接也是正確的。為了證明這一點,我們可以採取雙方,擴大條件概率的定義,直到我們達到平凡的真實:

假設它取消了( 在後面的步驟中P(C) > 0也是如此):

使用這個新的結果,我們可以用另一種方式計算我們的雙測試疾病練習。假設T1 首先發生,並且我們已經計算了P(D | T1)。我們現在可以將其作為新的先驗數據,並根據T2 發生的新證據找到P(D | T1∩T2) 。我們將使用貝葉斯空調用配方是?

我們已經知道P(D | T1) 是0.155; 那麼P(T2 | D∩T1)呢?由於測試是獨立的,這實際上等於P(T2 | D),它是0.8。分母需要更仔細的計算:

我們已經發現 先前使用總概率定律的P(T1) = 0.116。使用相同的法則:

因此,P(T1 | T2) = 0.034 / 0.116 = 0/293,現在我們擁有所有成分:

我們使用兩種不同的方法達到了相同的結果,令人放心。兩種測試一起進行計算會更快一些,但一次只進行一次測試也很有用,因為它讓我們可以根據新數據隨時間更新信念。

計算關於多個參數的條件概率在機器學習中非常有用 -


推薦閱讀:
相关文章