2012-03-01 149 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函数,它在测试阶段使用。这与朴素贝叶斯的正常计算有点不同,因为它也考虑到与每个特征相关的权重。