2014-12-15 3 views
3

Я использую метод j48 в weka. Мой образец данных обучения .arff файл следует,определить атрибут в файле arff с помощью java

@relation l4_tbl_final 

    @attribute MouseVariance numeric 
    @attribute EyeValue numeric 
    @attribute SocialTime numeric 
    @attribute KeyWords numeric 
    @attribute InvolvedTime numeric 
    @attribute grade {B,A,C} 

    @data 
    2731.35,87,47.55,0,49.7,B 
    864.891,55,0,0,94.33,B 
    2495.8,1386,0,2,71.75,A 
    1104.04,4490,0,0,61.91,B 

Первые 5 значения параметров и на основе этого класса, «A», «B», «C» дается.

Теперь мне нужно предоставить набор тестовых данных и предсказать оценку этих данных. (? Отметок на классе) для этого я должен предоставить testdata.arff файл следующим образом

@attribute MouseVariance numeric 
@attribute EyeValue numeric 
@attribute SocialTime numeric 
@attribute KeyWords numeric 
@attribute InvolvedTime numeric 
@attribute grade {B,A,C} 

@data 
2731.35,87,47.55,0,49.7,? 
864.891,55,0,0,94.33,? 
2495.8,1386,0,2,71.75,? 
1104.04,4490,0,0,61.91,? 

Я использовал следующий код Java для преобразования баз данных SQL в CSV и после этого CSV-файл преобразуется в ARFF:

while (resultSet.next()) { 
     row = spreadsheet.createRow(i); 
     cell = row.createCell(0); 
     cell.setCellValue(resultSet.getString("MouseVariance")); 
     cell = row.createCell(1); 
     cell.setCellValue(resultSet.getString("EyeValue")); 
     cell = row.createCell(2); 
     cell.setCellValue(resultSet.getString("SocialTime")); 
     cell = row.createCell(3); 
     cell.setCellValue(resultSet.getString("KeyWords")); 
     cell = row.createCell(4); 
     cell.setCellValue(resultSet.getString("InvolvedTime")); 
     cell = row.createCell(5); 
     cell.setCellValue("?"); 

       i++; 
    } 

, но когда я создаю файл ARFF таким образом атрибут является показывает, как

@attribute grade {numaric} value. 

так ожидаемый класс не прогнозируется. , но если это так, это решило бы проблему.

@attribute grade {B,A,C} 

Как я могу это решить ??

ответ

0

Похоже, что Атрибут не знает список доступных номинальных значений в списке.

Возможно, фильтр AddValues может помочь при добавлении этих изделий в список. Вы можете добавить значения A, B и C к номинальной переменной, тем самым делая их совместимыми с данными обучения.

Если это не проблема, предоставьте больше кода и сгенерированного вывода, и я посмотрю немного дальше.

Надеюсь, что это поможет!

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