Задача классификации ML для редкого события всегда предсказывает 0 - PullRequest
0 голосов
/ 03 октября 2018

У меня проблема с ML.У меня есть задание по классификации машинного обучения, где классификациями являются -1, 0 или 1. В действительности, в большинстве случаев правильная классификация равна 0, а примерно в 1% случаев ответ - -1 или 1.

Когда я тренируюсь (я использую auto_ml, но я думаю, что это общая проблема), я обнаружил, что моя модель решает, что она может получить точность 99%, просто прогнозируя 0 каждый раз.

Это известное явление?Могу ли я что-нибудь обойти, кроме как придумать больше классификаций?Может быть, что-то, что разделяет 0 на разные классы.

Любые советы или указатели на то, что читать дальше, приветствуются.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Да, ML может быть ленивым; -)

Вы можете попробовать включить больше редких случаев в свой тренировочный набор.Тем не менее, вы используете слово «Событие», которое заставляет меня задуматься, проводите ли вы какой-то анализ временных рядов - это какая-то рекуррентная сеть?Если так, то тренировка с большим количеством редких событий может быть нереальной.

0 голосов
/ 04 октября 2018

Вы должны заглянуть глубже в свой набор данных.Кажется, ваш набор данных несбалансирован.Возможные решения:

  • попытайтесь сбалансировать ваш набор данных - добавьте больше данных с метками 1 и -1 или уменьшите количество строк с меткой 0;
  • , если это невозможно, сделайте ваш набор данных сбалансированнымПопробуй изменить подход.Можно предположить, что метки 1 и -1 являются выбросами, и попытаться решить проблему обнаружения выбросов.Вот несколько примеров как бороться с выбросами с помощью библиотеки scikit-learn;
...