我有一个包含13个属性和二进制类变量的数据文件。在Orange Canvas中,当我应用“朴素贝叶斯”分类器'然后使用“测试学习者”检查表现。我发现结果取决于在de'选择属性'中选择属性的顺序。小部件。差异并不大,例如准确度从0.78到0.76。
由于朴素贝叶斯算法包含乘以估计概率,因此术语的顺序无关紧要。仔细检查发现:
电话看起来像这样:
bayes_rl = Orange.classification.bayes.NaiveLearner(estimator_constructor=Orange.statistics.estimate.RelativeFrequency())
bayes_relative = bayes_rl(data)
print bayes_relative.conditional_distributions
当然,我在这里假设从命令行调用分类器相当于以与文件中出现的顺序相同的顺序选择属性。
这使我对发生的事情有点不安全,是否有某种舍入错误?
答案 0 :(得分:0)
由于机器浮点数表示的精度有限,属性的顺序很重要,特别是在乘以小(接近零)数时。 这可能是导致此行为的原因(Orange中的朴素贝叶斯使用32位浮点精度)。