2015-02-04 4 views
0

У меня есть следующий разреженный файл ARFF в Weka - я хочу построить классификатор из данного разреженного файла ARFF (набор учебных данных) с использованием API Weka Java. Программа читает файл [не выбрасывает исключение], но не может читать экземпляры. Когда я печатаю количество экземпляров - программа печатает как 0. Спасибо заранее за входные данные.Создание модели и чтение Редкий файл ARFF в WEKA

@RELATION достаточно

@ATTRIBUTE Т1 числовая

@ATTRIBUTE Т2 числовая

@ATTRIBUTE Т3 числовая

@ATTRIBUTE Т4 числовая

@ATTRIBUTE T5 цифровая

@ATTRIBUTE C1 {0, 1}

@DATA

{0 3, 1 2, 2 1, 6 1}

{3 3, 4 2, 6 0}

ArffLoader loader = new ArffLoader();  
loader.setFile(new File("C:\\SAMPLE-01.arff"));  
Instances data = loader.getStructure();  
data.setClassIndex(data.numAttributes() - 1);  
System.out.println("Number of Attributes : " + data.numAttributes());  
System.out.println("Number of Instances : " + data.numInstances());  

ответ

0

Я считаю, что ваши редкие данные не правильно отформатирован в вашем файле ARFF. Это должно быть что-то вроде этого:

@RELATION ample 
@ATTRIBUTE T1 numeric 
@ATTRIBUTE T2 numeric 
@ATTRIBUTE T3 numeric 
@ATTRIBUTE T4 numeric 
@ATTRIBUTE T5 numeric 
@ATTRIBUTE C1 {0, 1} 

@DATA 
{0 3, 1 2, 2 1, 5 1} 
{3 3, 4 2, 5 0} 

И тогда вы можете использовать класс несколько, который выглядит, как у меня:

public class SO_Test { 
    DataSource source = null; 
    Instances data = null; 
    public void setDataset(String trainingFile){ 
     try { 
      source = new DataSource(trainingFile); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     try { 
      data = source.getDataSet(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     if (data.classIndex() == -1) 
      data.setClassIndex(data.numAttributes() - 1); 
    } 
    public static void main(String[] args) throws Exception{ 
     SO_Test s = new SO_Test(); 
     s.setDataset("1.arff"); 
     System.out.println("Number of Attributes : " + s.data.numAttributes());  
     System.out.println("Number of Instances : " + s.data.numInstances()); 
    } 
} 
Смежные вопросы