Weka中使用的多数投票算法是什么。我试图找出它的代码,但无法理解它。
答案 0 :(得分:13)
在Weka中,您可以选择要在Weka.classifiers.meta.vote
中使用的多个分类器。如果您选择Majority Voting
作为combinationRule
(仅适用于nominal
类),则每个分类器都会预测测试样本的名义类标签。然后将选择预测最多的标签作为vote
分类器的输出。
例如。您可以选择要使用的以下分类器:trees.J48
,bayes.NaiveBayes
和functions.LibSVM
来预测天气,可以标记为bad
,normal
或{{1 }}。给出一个新的测试样本,这些是他们的预测:
good
以下投票中每个可能标签的结果:
J48 - bad
NaiveBayes - good
LibSVM - good
因此Weka的bad - 1
normal - 0
good - 2
分类器会选择vote
作为测试样本的标签,因为它在所有三个分类器中得票最多。
<强> - 编辑 - 强>
Weka good
课程的source code中的distributionForInstanceMajorityVoting
函数向您展示了多数投票是如何实施的。我添加了下面的功能。以下是对其作用的描述:
代码的工作方式与我上面解释的相同。测试实例的所有名义类都加载到Vote
。每个分类器对实例进行分类,并且具有最高概率的标签获得投票。如果多个标签具有相同的概率,那么所有这些标签都会得到投票。一旦所有分类器都进行投票,选票最多的标签将被选为测试实例的 标签。如果多个标签的投票数相同,则会随机选择其中一个标签。
votes