Как проверить набор данных, действителен ли он для какой-либо классификации в WEKA API?

В Weka 3.6.5 я выполняю следующие шаги:

  1. Я использую Проводник Weka и открываю файл набора данных.
  2. Я перехожу на панель Classify и нажимаю кнопку «выбрать».

Теперь вы можете видеть, что WEKA заблокирует/затенит классификаторы, потому что они не могут обработать набор данных, см. изображение.

раздел классификации weka explorer

Я хотел бы знать, какой API Weka используется для определения того, можно ли использовать этот набор данных для какого-либо классификатора или нет. Я нашел его в документе Weka API, но не получил никакой полезной информации.


person user1491811    schedule 29.06.2012    source источник
comment
Я интерпретирую вопрос следующим образом: вы хотите знать, почему определенные классификаторы заблокированы для определенного набора данных. Или вы хотите использовать API, который, учитывая набор данных и классификатор, будет возвращать независимо от того, можно ли его использовать или нет?   -  person Sicco    schedule 30.06.2012


Ответы (1)


Weka отключает классификаторы, которые не могут обрабатывать ваши данные. Классификаторы активируются только в том случае, если данные соответствуют capabilities классификатора, который вы можете просмотреть, если щелкнете имя классификатора после того, как вы выбрали его из списка классификаторов. Например, вот возможности J48 (дерево решений):

  • Класс -- Двоичный класс, Номинальный класс, Отсутствующие значения класса
  • Атрибуты -- Номинальные атрибуты, Числовые атрибуты, Атрибуты даты, Унарные атрибуты, Отсутствующие значения, Двоичные атрибуты, Пустые номинальные атрибуты
  • Дополнительно -- мин. количество экземпляров: 0

Таким образом, данные класса должны быть либо двоичными, либо номинальными и допускают отсутствующие значения класса. Данные атрибутов могут быть Номинальными, Числовыми, Дата, Унарными, Двоичными и обрабатывать Отсутствующие значения и Пустые номинальные значения. Дополнительное ограничение гласит, что требуется как минимум 0 экземпляров (что довольно глупо, но другие классификаторы указывают более важные дополнительные требования в этом разделе).

Вы можете изменить свой класс и атрибуты, используя вкладку Preprocess. Например, если классификатор может работать только с двоичными атрибутами, вы можете использовать фильтр NominalToBinary для преобразования атрибутов из номинального в двоичный.

Еще одна вещь: убедитесь, что Weka знает, какой столбец данных должен использовать класс. По умолчанию он выбирает последний столбец в качестве столбца класса. Если ваш класс находится в другом столбце, вам нужно изменить его вручную, используя раскрывающееся меню на вкладке Classify.

person Sicco    schedule 30.06.2012
comment
Таким образом, я могу только прочитать каждый документ классификации и проверить все атрибуты самостоятельно. Верно? - person user1491811; 30.06.2012
comment
Да, через графический интерфейс вы можете проверить это только вручную. Чтобы автоматизировать процесс проверки того, какие классификаторы имеют какие возможности, вы можете получить его с помощью этой функции: weka.sourceforge.net/doc.dev/weka/core/Capabilities.html . Кстати, чего именно вы хотите добиться? Вы хотите, чтобы ваш набор данных работал с определенным классификатором? - person Sicco; 30.06.2012