如何计算Weka Naive Bayes输出中的“预测”列?

时间:2012-03-01 12:15:37

标签: statistics machine-learning weka bayesian

我使用10倍交叉验证进行了朴素贝叶斯分类,获得了如下测试数据的表格预测:

=== 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如何工作,因为我目前主要使用命令行工具,所以我并不感兴趣。

谢谢,

1 个答案:

答案 0 :(得分:1)

通过查看NaiveBayes类的源代码,有一个名为m_ClassDistribution的变量可以跟踪类预测。

在训练阶段,更新此变量以反映每个班级的先验概率。它在测试阶段用于计算属于给定类的给定样本的后验概率。

我建议您查看DiscreteEstimatorNaiveBayes的代码。特别是distributionForInstance功能,用于测试阶段。它与朴素贝叶斯的正常计算略有不同,因为它还考虑了与每个特征相关的权重。