2014-11-04 42 views
6

我必须在我的java代码中使用WEKA进行预测。基本上我必须研究给定的代码并重用它。什么是WEKA中的类别索引?

testdata.setClassIndex(data.numAttributes() - 1);

我无法理解上面的线表示。 什么是类索引?

testdatadata是Intances对象。

回答

8

如上所述here,setClassIndex用于定义将表示类的属性(用于预测目的)。假设索引从零开始,data.numAttributes() - 1表示testdata集的最后一个属性。

希望这有助于!

+0

感谢您的回复。虽然我对此还不是很清楚。假设我的训练数据集和我的测试数据中都有A,B,C,D属性,我需要预测属性D(以及测试DataSet中所有实例的相应A,B,C值)。我如何选择'班级指数'。它可以是任何属性?是否应该根据某些财产给予其中一个优先? – GiriB 2014-11-06 17:23:54

+0

类索引指示用于分类的目标属性。默认情况下,在ARFF文件中,它是最后一个属性,这解释了为什么将其设置为numAttributes-1。 – 2014-11-07 05:01:46

3

当您使用分类器将一组数据分类为某些类值时,您将给出一个具有数据属性和具有该类值的属性的实例。例如,假设您将电子邮件设置为数据,则必须将这些电子邮件归类为垃圾邮件/非垃圾邮件。所以你的类属性有两个类值(垃圾邮件,非垃圾邮件)。

通常,类属性添加为实例的最后一个属性(不是必须的)。所以你必须指出分类器哪个属性是类属性,哪些属性是其他属性。所以你提到的这一行是做这个工作的。指示什么是您的数据实例对象的类索引。

如果你想要更多的解释,请在这里发布你的代码。干杯..!

0

类索引指示用于分类的目标属性。默认情况下,在ARFF文件中,它是最后一个属性,这解释了为什么将其设置为numAttributes-1。