2012-03-25 96 views
0

我從數學的角度與某人討論樸素貝葉斯分類器。我們正在討論如果將很多概率乘以一起,最終原始類型(如float或double)將無法存儲結果值,並且它只會變成零。樸素貝葉斯分類器數學 - 缺乏計算精度

P(X1)* P(X2)* ... =一些太小的計算機= 0

與我交談該人士說,「解決辦法」將採取的日誌概率並將它們加在一起就像這樣。

日誌(P(X1))+日誌(P(X2))+ ...

我理解的走的概率日誌的優勢,它增加了數的大小,以便它不't'脫落「,但是如何在你之後將它們加在一起呢?是否這樣,當你運行樸素貝葉斯時,只要你一直對所有分類「桶」進行操作,你仍然可以在一天結束時找到最大的一個呢?

任何解釋讚賞。謝謝,

MJ

+1

作爲一般規則,無論您最終按順序乘以數字,您都可以更好地總結其日誌。如果數字讀取1 + x且x接近零(這似乎不是你的情況,除非你的概率分佈非常接近uniform),那麼你可能需要一個專門的'log(1 + x)'例程,它處理與這種情況下。 – 2012-03-25 14:43:05

回答

5

因爲log(a*b) = log(a) + log(b)。它是對數性質。

+1

哦,哎呀。這就是我不記得任何對數規則。感謝duffymo。 – 2012-03-25 14:43:01

+0

這是我的榮幸。 – duffymo 2012-03-25 16:21:41