属性顺序影响结果Naive Bayes Orange

时间:2014-10-23 14:30:11

标签: classification orange

我有一个包含13个属性和二进制类变量的数据文件。在Orange Canvas中,当我应用“朴素贝叶斯”分类器'然后使用“测试学习者”检查表现。我发现结果取决于在de'选择属性'中选择属性的顺序。小部件。差异并不大,例如准确度从0.78到0.76。

由于朴素贝叶斯算法包含乘以估计概率,因此术语的顺序无关紧要。仔细检查发现:

  • 这仅适用于相对频率估计(不适用于拉普拉斯)
  • 每个数据文件或每次重新排列都不会发生这种情况。当前3个变量移动到最后3个位置时确实会发生这种情况
  • 我们的数据文件包含零频率
  • 似乎差异不是由于不同的概率估计。从命令行调用估算器时,属性在数据文件中的显示顺序无关紧要。

电话看起来像这样:

bayes_rl = Orange.classification.bayes.NaiveLearner(estimator_constructor=Orange.statistics.estimate.RelativeFrequency())
bayes_relative = bayes_rl(data)
print bayes_relative.conditional_distributions

当然,我在这里假设从命令行调用分类器相当于以与文件中出现的顺序相同的顺序选择属性。

这使我对发生的事情有点不安全,是否有某种舍入错误?

1 个答案:

答案 0 :(得分:0)

由于机器浮点数表示的精度有限,属性的顺序很重要,特别是在乘以小(接近零)数时。 这可能是导致此行为的原因(Orange中的朴素贝叶斯使用32位浮点精度)。