如何在Weka中创建属性

时间:2016-12-02 00:33:04

标签: java weka

我在Java中使用WEKA开展数据挖掘项目,并且说明我必须为数据集中的每个属性创建一个Attribute对象,并将它们添加到FastVector。我试着看一下API,但我不认为我做得对,有人可以告诉我正确的做法。我正在使用iris.arff文件



import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import weka.core.Attribute;
import weka.core.FastVector;
import weka.core.Instances;
import weka.core.converters.ArffSaver;

public class StartWeka {
	public static void main(String[]args)throws Exception{
		
		Instances dataset = new Instances(new BufferedReader(new FileReader("C:/Users/Student/workspace/Data Mining/src/iris.arff.txt")));
		
		Instances train = new Instances(dataset);
		train.setClassIndex(train.numAttributes()-1);
		
		System.out.println(dataset.toSummaryString());
		
		Attribute a1 = new Attribute("sepallength", 0);
        Attribute a2 = new Attribute("sepalwidth", 1);
        Attribute a3 = new Attribute("petalwidth", 2);
        
        FastVector attrs = new FastVector();
		attrs.addElement(a1);
	}
}




1 个答案:

答案 0 :(得分:0)

不推荐使用FastVector。您可以使用ArrayList。

但是,如果使用arff文件,则不必执行任何操作。您可以执行以下操作:

    ArffLoader loader = new ArffLoader();
    loader.setFile(new File("iris.arff");
    Instances structure = loader.getStructure();
    structure.setClassIndex(structure.numAttributes() - 1);

从这里开始,您可以根据实例创建分类器。 (结构)。