Вопрос по – Пропустить функцию при классификации, но показать функцию в выводе

17

Я создал набор данных, который содержит +/- 13000 строк с +/- 50 признаками. Я знаю, как вывести каждый результат классификации: прогноз и факт, но я хотел бы иметь возможность выводить какой-то идентификатор с этими результатами. Поэтому я добавил столбец идентификатора в свой набор данных, но я не знаю, как игнорировать идентификатор при классификации, но при этом могу вывести идентификатор с каждым результатом прогнозирования. Я знаю, как выбирать функции для вывода с каждым прогнозом.

Ваш Ответ

2   ответа
12

Используйте FilteredClassifier. Увидетьэтот а такжеэтот .

Error: User Rate Limit Exceededweka.filters.unsupervised.attribute.Remove
2

что следующие значения - это атрибуты в bbcsport.arff, которые вы хотите удалить и находятся в файле attribute.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);

& APOS; фильтруют & APOS; имеет окончательные атрибуты ..

Мой блог ..http://ojaslabs.com/include-exclude-attributes-in-weka

Похожие вопросы