上面講的特徵屬性值,都是離散的,賬號真假檢測例子中把連續的轉換成區間,每個區間也可以看成離散的,但是如果在不能這樣轉換的情況下怎麼解決?如果特徵屬性值是不是離散的,而是連續的怎麼辦?
我們是站在巨人的肩膀上,前人早已經為我們找到了應對之策
當特徵屬性為連續值時,通常假定其值服從高斯分布(也稱正態分佈)。即:
而因此只要計算出訓練樣本中各個類別中此特徵項劃分的各均值和標準差,代入上述公式即可得到需要的估計值。(ak為觀察到的屬性值)
另乙個需要討論的問題就是當p(a|y)=0怎麼辦,當某個類別下某個特徵項劃分沒有出現時,就是產生這種現象,這會令分類器質量大大降低。為了解決這個問題,引入了拉普拉斯校準,它的思想非常簡單,就是對沒類別下所有劃分(概率為零的)的計數加1,這樣如果訓練樣本集數量充分大時,並不會對結果產生影響,並且解決了上述頻率為零的尷尬局面。
驗證買電腦,是否和收入有關的場景下:
類 buys_computer=yes包含1000個元組,有0個元組income=low ,990個元組 income=medium,10個元組income=high,這些事件的概率分別是0, 0.990, 0.010.
有概率為0,肯定不行.使用拉普拉斯校準,對每個收入-值對應加1個元組,分別得到如下概率
[plain]view plain
copy
?1/1003=0.001
999/1003=0.998
11/1003=0.011
這些校準的概率估計與對應的未校準的估計很接近,但是避免了零概率值
再看乙個阮一峰老師的樸素貝葉斯應用一文中摘自維基百科的例子,關於處理連續變數的另一種方法。
下面是一組人類身體特徵的統計資料。
[plain]view plain
copy
?性別 身高(英呎) 體重(磅) 腳掌(英吋)
男 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(男)可以看到,女性的概率比男性要高出將近10000倍,所以判斷該人為女性。= 6.1984 x e-9
p(身高=6|女) x p(體重=130|女) x p(腳掌=8|女) x p(女)
= 5.3778 x e-4
機器學習之樸素貝葉斯(連續值)二
某樣本如下 問題 身高170,體重130,鞋碼42,請問是男是女?當特徵為連續值時,直接求條件概率就比較困難。假設特徵均為正太分布,即身高 體重 鞋碼均為正太分布,正太分布的均值 標準差由樣本算出,根據正太分布算出某乙個特徵的具體值。實現求正太分布中某一值的概率密度,如下 from pandas i...
樸素貝葉斯公式的理解和應用
樸素貝葉斯 2019.11.21 貝葉斯方法是乙個歷史悠久,有著堅實的理論基礎的方法,同時處理很多問題時直接而又高效,很多高階自然語言處理模型也可以從它演化而來。因此,學習貝葉斯方法,是研究自然語言處理問題的乙個非常好的切入口。貝葉斯公式就一行 而它其實是由以下的聯合概率公式推導出來 其中p y 叫...
回歸大家庭和樸素貝葉斯總結歸納
線性回歸就是利用線性回歸方程的最小二乘函式對乙個或多個自變數和因變數之間的關係進行建模的方法,通俗的說就是通過大量樣本的訓練,通過有監督的學習找到乙個x到y的對映關係,利用該關係對未知資料進行 經常用於房價 等方面,之所以把其分類到回歸問題是因為我們所 的y值是連續值。n 為 樣本總數 x 為 樣本...