Я создал набор данных, который содержит +/- 13000 строк с +/- 50 функциями. Я знаю, как выводить каждый результат классификации: предсказание и фактическое, но я хотел бы иметь возможность выводить какой-то идентификатор с этими результатами. Поэтому я добавил столбец идентификатора в свой набор данных, но я не знаю, как игнорировать идентификатор при классификации, все еще имея возможность выводить идентификатор с каждым результатом предсказания. Я знаю, как выбирать функции для вывода с каждым предсказанием.
Пропустить функцию при классификации, но показать функцию на выходе
Ответ 1
Ответ 2
Скажем, следующие атрибуты в bbcsport.arff, которые вы хотите удалить, и находятся в файле attributes.txt по строкам.
Серена
служить
сервис
наборы
ударяя
теннис
тай-брейке
турниры
Уимблдон
..
Вот как вы можете включить или исключить атрибуты, установив true или false. (взаимно неуловимый) remove.setInvertSelection(false)
BufferedReader datafile = new BufferedReader(new FileReader("bbcsport.arff"));
BufferedReader attrfile = new BufferedReader(new FileReader("attributes.txt"));
Instances data = new Instances(datafile);
List<Integer> myList = new ArrayList<Integer>();
String line;
while ((line = attrfile.readLine()) != null) {
for (n = 0; n < data.numAttributes(); n++) {
if (data.attribute(n).name().equalsIgnoreCase(line)) {
if(!myList.contains(n))
myList.add(n);
}
}
}
int[] attrs = myList.stream().mapToInt(i -> i).toArray();
Remove remove = new Remove();
remove.setAttributeIndicesArray(attrs);
remove.setInvertSelection(false);
remove.setInputFormat(data); // init filter
Instances filtered = Filter.useFilter(data, remove);
"отфильтрованный" имеет конечные атрибуты.
Мой блог.. http://ojaslabs.com/include-exclude-attributes-in-weka