现在我们介绍使用Weka来对数据进行分类。对数据进行分类,我们必须先指定那一列作为预测类别。因为数据文件格式的问题,类别一般都是最后一列属性。我们可以使用setClassIndex来设置类别。然后我们要选择分类器,分类器有很多,我们暂时使用J48分类器。对数据进行训练可以使用buildClassifier,然后我们可以用classifyInstance来查看训练数据预测的类别值。当然预测的类别会用数值表示,比如0,1,2....代表预测的值属于第几个类别。例如类别的值为{sunny,rainy}那么0代表sunny,1代表rainy。
package InstanceTest;import weka.core.Instances;import weka.classifiers.trees.J48;import weka.classifiers.trees.j48.*;import java.io.*;public class InstanceTest {
/** * @param args */public Instances data;//设置预测类别 默认为最后一个public void SetClassIndex(Instances ins){ins.setClassIndex(ins.numAttributes()-1);}public Instances GetInstance(String FileName)throws Exception{FileReader reader=new FileReader(FileName); data=new Instances(reader);return data;}public void classify()throws Exception{J48 classify=new J48();classify.buildClassifier(data);System.out.println(classify.classifyInstance(data.instance(0))); } public static void main(String[] args) { try { InstanceTest test=new InstanceTest(); Instances date=test.GetInstance("D://train.arff"); test.SetClassIndex(date); test.classify(); } catch(Exception e) { e.printStackTrace(); }}
}
Weka 入门2,,
Weka 入门2
【本文来源:香港将军澳机房 http://www.558idc.com/hk.html 欢迎留下您的宝贵建议】