機器學習實戰讀書筆記 3 樸素貝葉斯

2021-09-07 17:25:24 字數 1351 閱讀 2526

貝葉斯定理

要理解貝葉斯推斷,必須先理解貝葉斯定理。後者實際上就是計算"條件概率"的公式。

所謂"條件概率"(conditional probability),就是指在事件b發生的情況下,事件a發生的概率,用p(a|b)來表示。

根據文氏圖,可以很清楚地看到在事件b發生的情況下,事件a發生的概率就是p(a∩b)除以p(b)。

因此,同理可得,

所以,即

這就是條件概率的計算公式。

性別分類的例子

本例摘自維基百科,關於處理連續變數的另一種方法。

下面是一組人類身體特徵的統計資料。

性別  身高(英呎) 體重(磅)  腳掌(英吋)

男    6       180     12 

男    5.92     190     11 

男    5.58     170     12 

男    5.92     165     10 

女    5       100     6 

女    5.5      150     8 

女    5.42     130     7 

女    5.75     150     9

已知某人身高6英呎、體重130磅,腳掌8英吋,請問該人是男是女?

根據樸素貝葉斯分類器,計算下面這個式子的值。

p(身高|性別) x p(體重|性別) x p(腳掌|性別) x p(性別)

這裡的困難在於,由於身高、體重、腳掌都是連續變數,不能採用離散變數的方法計算概率。而且由於樣本太少,所以也無法分成區間計算。怎麼辦?

這時,可以假設男性和女性的身高、體重、腳掌都是正態分佈,通過樣本計算出均值和方差,也就是得到正態分佈的密度函式。有了密度函式,就可以把值代入,算出某一點的密度函式的值。

比如,男性的身高是均值5.855、方差0.035的正態分佈。所以,男性的身高為6英呎的概率的相對值等於1.5789(大於1並沒有關係,因為這裡是密度函式的值,只用來反映各個值的相對可能性)。

有了這些資料以後,就可以計算性別的分類了。

p(身高=6|男) x p(體重=130|男) x p(腳掌=8|男) x p(男) 

= 6.1984 x e-9

p(身高=6|女) x p(體重=130|女) x p(腳掌=8|女) x p(女) 

= 5.3778 x e-4

可以看到,女性的概率比男性要高出將近10000倍,所以判斷該人為女性。

樸素貝葉斯 機器學習實戰

主要引用的是機器學習實戰中第四章的例子。該例子中將所有的詞當作乙個特徵。我們已知類別下相應特徵的概率,計算出乙個特徵下屬於不同類別的概率大小,然後選取較大的為此特徵的類別。import numpy as np def loaddataset postinglist my dog has flea p...

機器學習實戰學習筆記(三) 樸素貝葉斯

之所以稱之為 樸素 是因為整個形式化過程只做最原始 最簡單的假設。優缺點 優點 在資料較少的情況下仍然有效,可以處理多類別問題。確定 對於輸入資料的準備方式比較敏感。適用資料型別 標稱型資料。入門示例 二維座標中,如果p1 x,y p2 x,y 那麼 x,y 屬於類別1,否則屬於類別2.機器學習的乙...

機器學習實戰之樸素貝葉斯

4.樸素貝葉斯的優缺點 優點 在資料較少的情況下仍然有效,可以處理多類別問題。缺點 對於輸入資料的準備方式較為敏感。適用資料型別 標稱型資料。5.使用python進行文字分類 5.1 準備資料 從文字中構建詞向量 我們將把文字看成單詞向量或者詞條向量。考慮出現在所有文件中的所有單詞,再決定將哪些詞納...