2013-04-12 4 views
0

Я относительно новичок в области интеллектуального анализа данных и экспериментировал с Weka.Weka: Классификатор и ReplaceMissingValues ​​

У меня есть набор данных, который состоит из почти 8000 записей, относящихся к покупателям и предметам, которые они приобрели. 58% этого набора данных не имеют значений для атрибута «Пол».

Я хочу найти недостающие гендерные значения на основе других данных, которые у меня есть.

Сначала я подумал, что могу сделать это, используя алгоритм классификатора в Weka, используя набор для создания модели. Основываясь на примерах, которые я видел в Интернете, я попробовал это с почти всеми доступными алгоритмами, доступными в Weka, используя набор для обучения, который состоял из 60-80% данных, которые не имели отсутствующих значений. Это дало мне более низкий коэффициент точности, чем я хотел (80-86% в зависимости от используемого алгоритма)

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

Я также попытался использовать фильтр ReplaceMissingValues ​​в полном наборе данных, чтобы увидеть, как это будет обрабатывать недостающие значения. Однако он просто изменил все недостающие значения на «Женщины», что, очевидно, не может быть. Поэтому мне также интересно узнать, нужно ли мне использовать этот фильтр в моей ситуации или нет.

ответ

2

Похоже, вы поехали по нему правильным способом. Фильтр ReplaceMissingValues заменяет отсутствующие значения наиболее часто встречающимися значениями, которые не считаются отсутствующими, я думаю, поэтому это не то, что вы хотите в этом случае.

Лучшим способом получить представление об истинной точности вашего гендерного предиктора будет использование кросс-валидации вместо разделения обучения/теста (у Weka есть отдельный вариант для этого). 80-86% могут показаться низкими, но имейте в виду, что случайное угадывание приведет только к вам примерно на 50%, так что это все еще намного лучше. Чтобы попытаться получить лучшую производительность, выберите классификатор, который хорошо работает, а затем поиграйте со своими параметрами, пока не получите лучшую производительность. Это, вероятно, будет довольно трудоемким (хотя вы, конечно, можете использовать автоматизированные методы настройки, см., Например, Auto-WEKA), но единственный способ повысить производительность.

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

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