2016-12-02 3 views
0

Я работаю над проектом интеллектуального анализа данных с использованием WEKA в Java, и в инструкциях говорится, что мне нужно создать объект Attribute для каждого атрибута в наборе данных и добавить их в FastVector. Я пытаюсь посмотреть на API, но я не думаю, что я делаю это правильно, может кто-то показать мне правильный способ сделать это. Я использую iris.arff файлКак создать атрибут в Weka

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

ответ

0

FastVector является устаревшим. Вместо этого вы можете использовать ArrayList.

Если вы используете файл arff, однако, вам не нужно ничего делать. Вы можете просто сделать следующее:

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

Здесь вы можете создать классификатор на основе ваших экземпляров. (состав).

Смежные вопросы