上面講的特徵屬性值,都是離散的,帳號真假檢測例子中把連續的轉換成區間,每一個區間也能夠當作離散的,可是若是在不能這樣轉換的狀況下怎麼解決?若是特徵屬性值是否是離散的,而是連續的怎麼辦?html
咱們是站在巨人的肩膀上,前人早已經爲咱們找到了應對之策算法
當特徵屬性爲連續值時,一般假定其值服從高斯分佈(也稱正態分佈)。即:網絡
而函數
所以只要計算出訓練樣本中各個類別中此特徵項劃分的各均值和標準差,代入上述公式便可獲得須要的估計值。(ak爲觀察到的屬性值)spa
另外一個須要討論的問題就是當P(a|y)=0怎麼辦,當某個類別下某個特徵項劃分沒有出現時,就是產生這種現象,這會令分類器質量大大下降。爲了解決這個問題,引入了拉普拉斯校準,它的思想很是簡單,就是對沒類別下全部劃分(機率爲零的)的計數加1,這樣若是訓練樣本集數量充分大時,並不會對結果產生影響,而且解決了上述頻率爲零的尷尬局面。.net
驗證買電腦,是否和收入有關的場景下:code
類 buys_computer=yes包含1000個元組,有0個元組income=low ,990個元組 income=medium,10個元組income=high,這些事件的機率分別是0, 0.990, 0.010.htm
有機率爲0,確定不行.使用拉普拉斯校準,對每一個收入-值對應加1個元組,分別獲得以下機率blog
這些校準的機率估計與對應的未校準的估計很接近,可是避免了零機率值事件
再看一個阮一峯老師的樸素貝葉斯應用一文中摘自維基百科的例子,關於處理連續變量的另外一種方法。
下面是一組人類身體特徵的統計資料。
已知某人身高6英尺、體重130磅,腳掌8英寸,請問該人是男是女?
根據樸素貝葉斯分類器,計算下面這個式子的值。
P(身高|性別) x P(體重|性別) x P(腳掌|性別) x P(性別)
這裏的困難在於,因爲身高、體重、腳掌都是連續變量,不能採用離散變量的方法計算機率。並且因爲樣本太少,因此也沒法分紅區間計算。怎麼辦?
這時,能夠假設男性和女性的身高、體重、腳掌都是正態分佈,經過樣本計算出均值和方差,也就是獲得正態分佈的密度函數。有了密度函數,就能夠把值代入,算出某一點的密度函數的值。
好比,男性的身高是均值5.85五、方差0.035的正態分佈。因此,男性的身高爲6英尺的機率的相對值等於1.5789(大於1並無關係,由於這裏是密度函數的值,只用來反映各個值的相對可能性)。
有了這些數據之後,就能夠計算性別的分類了。
P(身高=6|男) x P(體重=130|男) x P(腳掌=8|男) x P(男)
= 6.1984 x e-9P(身高=6|女) x P(體重=130|女) x P(腳掌=8|女) x P(女)
= 5.3778 x e-4
能夠看到,女性的機率比男性要高出將近10000倍,因此判斷該人爲女性。
下一篇會寫貝葉斯網絡。
參考文章:
http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html
http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html
http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html
http://blog.csdn.NET/zdy0_2004/article/details/41096141
參考書籍:數據挖掘概念與技術。數據挖掘十大算法,統計學機率論方面的數學知識
碼字不易,轉載請指明出自http://blog.csdn.Net/tanggao1314/article/details/66478782