Weka.classifiers.meta.vote中的多数投票算法

时间:2012-07-24 07:50:18

标签: weka

Weka中使用的多数投票算法是什么。我试图找出它的代码,但无法理解它。

1 个答案:

答案 0 :(得分:13)

在Weka中,您可以选择要在Weka.classifiers.meta.vote中使用的多个分类器。如果您选择Majority Voting作为combinationRule(仅适用于nominal类),则每个分类器都会预测测试样本的名义类标签。然后将选择预测最多的标签作为vote分类器的输出。

例如。您可以选择要使用的以下分类器:trees.J48bayes.NaiveBayesfunctions.LibSVM来预测天气,可以标记为badnormal或{{1 }}。给出一个新的测试样本,这些是他们的预测:

good

以下投票中每个可能标签的结果:

J48        - bad
NaiveBayes - good
LibSVM     - good

因此Weka的bad - 1 normal - 0 good - 2 分类器会选择vote作为测试样本的标签,因为它在所有三个分类器中得票最多。

<强> - 编辑 -

Weka good课程的source code中的distributionForInstanceMajorityVoting函数向您展示了多数投票是如何实施的。我添加了下面的功能。以下是对其作用的描述:

代码的工作方式与我上面解释的相同。测试实例的所有名义类都加载到Vote。每个分类器对实例进行分类,并且具有最高概率的标签获得投票。如果多个标签具有相同的概率,那么所有这些标签都会得到投票。一旦所有分类器都进行投票,选票最多的标签将被选为测试实例的 标签。如果多个标签的投票数相同,则会随机选择其中一个标签。

votes