2013-07-16 6 views
0

Я пытаюсь получить первый столбец набора данных с помощью weka. Но Copy filter возвращает весь набор! Зачем? Благодарю.Weka copy filter не работает

Copy mCopy = new Copy(); 
mCopy.setInputFormat(rawData); 
String rangeList; 
rangeList = "first"; 
mCopy.setAttributeIndices(rangeList); 
Instances dataSlice = weka.filters.Filter.useFilter(rawData, mCopy); 
System.out.println(dataSlice); 

ответ

0
  • Если ваш код работает хорошо, это добавит еще одну копию атрибута first вместо только сохранить его, что означает dataSlice будет rawData + first attribute of rawData.

  • Давайте исправьте ваш код. setAttributeIndices() следует использовать до setInputFormat(). Это четко указано в weka API:

    Примечание: используйте этот метод, прежде чем вы вызове setInputFormat (экземпляры), поскольку формат вывода определяется этим методом.

    Если вы изменили порядок их вызова, ваш код получит результат, который я сказал выше.

  • Если вы хотите сохранить только атрибут first, вы можете использовать фильтр Remove и setAttributeIndices("2-last"). Я не квалифицирован в Вэке. Там могут быть лучшие способы сделать это.

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

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