2013-10-15 46 views
2

我正在審查幻燈片的大數據類。他們說高維樸素貝葉斯容易出現數值下溢和未觀察到的事件 - 因此您應該在計算樸素貝葉斯時記下概率的對數。這些幻燈片在談論什麼?我認爲數值下溢是因爲變量類型(例如一個大的轉換爲int)而失去精度。但這似乎並不是這些幻燈片中術語的含義。數字下溢和未觀察事件是什麼意思?如何在概率貝葉斯中考慮概率的對數函數來避免這些事情?爲什麼高維貝葉斯分類問題受數值下溢?

回答

3

您的電腦只具有有限精度。因此,例如,對計算的東西無限精度的理想電腦,這個小Python程序絕不會阻止,它將不斷印數在越來越接近0

x = 1.0 
while x != 0: 
    x = x * .5 
    print x 

但由於電腦賣場號固定數量的位,它只能表示很多數字,並最終將產品舍入爲0,並退出循環。

當您有很多功能時,樸素貝葉斯的計算就像這樣發生。您將很多很多概率都乘以小於1,並且由於機器精度問題,您最終可以達到0。

+0

非常感謝。這解釋了它。 – bernie2436

+0

像這樣「沖洗到零」不是標準行爲。通常,如果不設置特殊選項,您將獲得NaN而不是零值。也許python爲你啓用了這個功能。 – 2016-05-23 11:17:07

0

避免(或至少減輕)算術下溢問題的一種常見方法是使用對數概率。谷歌這樣的「登錄概率下溢」,你應該找到很多好的點擊。

這個link提供了一個很好的介紹。這裏有其他的:LinkLink。這裏有一百萬 - 享受!

0

順便說一句,採取日誌有助於它的一個原因是它將產品轉換爲總和。