2012-03-01 148 views
2

我沒有使用10倍交叉驗證樸素貝葉斯分類,上看起來像這樣的測試數據,獲得表預測:Weka樸素貝葉斯輸出中的「預測」列是如何計算的?

=== Predictions on test data === 

    inst#  actual predicted error prediction  (name) 
    1 3:no_chang 3:no_chang   0.943  (region_1) 
    2 1:active_K 1:active_K   1   (region_2) 
    3 3:no_chang 3:no_chang   0.912  (region_3) 
    4 3:no_chang 3:no_chang   0.858  (region_4) 
    5 3:no_chang 2:active_G +  0.518  (region_5) 

我想知道的「預測」列是如何計算的。我知道它從0到1,1,這意味着預測是「更好」,但這是我經過相當長時間搜索和瀏覽Weka書後才能找到的。

我知道有很多關於Weka的信息,但我有點不知所措,無法輕鬆找到我簡單問題的答案。另外,有人能爲我的命令行用戶指出一個很好的詳細weka手冊嗎? Weka的書似乎過於注重解釋GUI的工作原理,因爲我目前主要使用命令行工具,所以這並不真正令我感興趣。

謝謝

胡安

+0

嗯,我確定如果你使用這個,你知道NB分類器是如何工作的?如果是這樣,你會意識到NB分類器由於其概率基礎並不能做出絕對的預測。因此,我猜測預測值是與該點相關的分類的概率。超過一定的閾值,分類器確定這是正確的分類,並分配一個標籤。 – 2012-10-04 14:29:25

+0

http://www.inf.ed.ac.uk/teaching/courses/inf2b/learnSlides/inf2b12-learnlec07.pdf是Naives Bayes分類的基於理論的教程。不知道這是不是你想要的。 – 2012-11-27 13:39:12

回答

1

通過查看該NaiveBayes類的源代碼,有一個叫m_ClassDistribution變量,跟蹤類的預測。

在訓練階段,這個變量被更新以反映每個類的先驗概率。它在測試階段用於計算屬於給定類別的給定樣本的後驗概率。

我建議您查看DiscreteEstimatorNaiveBayes的代碼。特別是distributionForInstance函數,它在測試階段使用。這與樸素貝葉斯的正常計算有點不同,因爲它也考慮到與每個特徵相關的權重。