Вопрос об использовании Weka, инструмента машинного обучения

Я использую функцию проводника Weka для классификации.

Итак, у меня есть файл .arff с двумя функциями с числовым значением, а мой класс — двоичный 0 или 1 (например, {0,1}).

Образец:

@RELATION summary
@ATTRIBUTE feature1 NUMERIC
@ATTRIBUTE feature2 NUMERIC
@ATTRIBUTE class {1,0}

@DATA
23,11,0
20,100,1
2,36,0
98,8,1
.....

Я загружаю этот файл .arff, использую 10-кратную перекрестную проверку (без тестового файла) и выбираю NaiveBayes, затем классифицирую данные и получаю: 5 неправильно помечены, 100 правильно помечены. Все идет нормально.

Теперь я значительно меняю свой файл .arff (задаю совершенно случайные значения для атрибутов своих функций). И повторите вышесказанное, и я получу ТОЧНО ту же статистику при классификации.

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

Я делаю что-то не так здесь?


person Saobi    schedule 27.11.2009    source источник
comment
Поскольку это уже решено, можете ли вы обновить заголовок, чтобы что-то более конкретное?   -  person Sentry    schedule 10.03.2013


Ответы (3)


Трудно сказать без дополнительной информации, но у меня есть два предложения:

  1. Каковы относительные пропорции этих двух классов? Это от 5 до 100? Многие алгоритмы плохо работают с сильно перекошенными распределениями меток классов.

  2. Просто догадка, но попробуйте изменить метки классов с чисел на строки (например, «класс1» и «класс2»). Weka называет эти атрибуты «номинальными», поэтому, возможно, использование чисел не разрешено.

person Stompchicken    schedule 27.11.2009

Кроме того: имейте в виду, что перекрестная проверка в пользовательском интерфейсе довольно ужасна, поскольку они в любом случае показывают вам только исходное дерево (до того, как они добавят другие данные). Если вы хотите сгенерировать окончательные деревья, вам нужен программный API. Я предлагаю использовать разделенный набор данных для обучения/тестирования.

person James    schedule 11.02.2010

Вы пытались изменить

@ATTRIBUTE class {1,0} 

с участием

@ATTRIBUTE class {yes,no} 
person Community    schedule 23.03.2010