1

Я работаю над задачей классификации в Weka и получил проблему, которую мой класс для прогнозирования имеет очень важное значение (около 85%). Это приводит к тому, что многие алгоритмы обучения просто предсказывают эту частую ценность этого класса для нового набора данных.Как бороться с частыми занятиями?

Как я могу справиться с этой проблемой? Означает ли это, что я не нашел функций, которые работают достаточно хорошо, предсказывая что-то лучше? Или есть что-то конкретное, что я могу сделать, чтобы решить эту проблему?

Я думаю, это довольно распространенная проблема, но я не смог найти здесь решение.

+1

Classes! = Особенности. –

+3

Возможный дубликат [Инструменты для многоклассической несбалансированной классификации в статистических пакетах] (http://stackoverflow.com/questions/12877153/tools-for-multiclass-imbalanced-classification-in-statistical-packages), [Как бороться с низкими частотные примеры в классификации?] (http://stackoverflow.com/questions/17618532/how-to-deal-with-low-frequency-examples-in-classification) и несколько других вопросов. –

+0

Большое спасибо за вашу быструю помощь! Эти вопросы дают мне подсказки о том, как назвать эту проблему (и как ее решить). И извините, если я перепутаю условия. Weka использует их по-другому, чем я их изучил в первый раз. – Martin

ответ

1

Вам нужно «SMOTE» ваши данные. Сначала выясните, сколько еще примеров случая меньшинства вам нужно. В моем случае я хотел обойти соотношение 50/50, поэтому мне потребовалось более образца на 1300 процентов. Этот учебник поможет, если вы используете графический интерфейс: http://www.youtube.com/watch?v=w14ha2Fmg6U Если вы делаете это из командной строки с помощью Weka, следующая команда получит вы собираетесь:

#Weka 3.7.7 
java weka.Run -no-scan weka.filters.supervised.instance.SMOTE \ 
-c last -K 25 -P 1300.0 -S 1 -i input.arff -o output.arff 

опция -k число соседей, чтобы принять учитывать при размывании данных. По умолчанию 5, но 25 лучше всего подходят для моего набора данных.

+1

Спасибо! В дополнение к решению: метаклассификатор FilteredClassifier помогает сделать это (meta/FilteredClassifier). Особенно, когда вы пытаетесь проверить, насколько необходима сверхэмпирация (сколько нужно добавлять артефакты). – Martin