Чтобы избежать хаоса, все должно быть сбалансировано
В этом сообщении блога мы обсудим проблему дисбаланса классов в машинном обучении, ее причины и способы ее преодоления. Исходя из моего опыта участия в собеседовании, интервьюеры задают по крайней мере один вопрос, основанный на сценарии классового дисбаланса, в основном как справиться с классовым дисбалансом?
Несбалансированность классов - это классическая проблема, с которой можно столкнуться при работе над проблемой ml, при дисбалансе классов каждый класс не одинаково представлен количеством точек данных.
Обучение дисбалансу
Цель обучения дисбалансу в целом можно описать как получение классификатора, который обеспечит высокую точность для класса меньшинства, не подвергая серьезной опасности точность класса большинства.
Когда есть существенная разница в количестве выборок в каждом классе обучающих данных, обучающая модель может не справиться с множественными характеристиками, как показано ниже.
- Недостаточный сигнал: модель работает плохо из-за недостаточного представления класса меньшинства, что делает ее кратким обучением на примерах класса меньшинства.
- Бредовая точность: Рассмотрим два класса: класс A с 10 тыс. точек данных и класс B с 1 тыс. точек данных, даже если прогноз модели для класса B неверен, т.е. весь класс B прогнозируется как класс. A, чтобы модель имела низкие потери и высокую точность. Несмотря на то, что модель узнает относительно мало о базовой структуре данных. Такая точка может быть локальным минимумом потерь, из которого может быть трудно извлечь данный алгоритм спуска.
- Ужасные результаты. В некоторых случаях ошибки следует избегать любой ценой. Например, если модель не может правильно идентифицировать особенно редкую, но агрессивную форму рака. Модель не может обучаться или плохо работает на несбалансированном классе, которого недостаточно для построения системы машинного обучения.
Распространенные случаи классового дисбаланса
- Обнаружение мошенничества (действительны большинство банковских транзакций)
- Обнаружение спама (большинство писем не является спамом)
- Скрининг болезней (большинство людей здоровы)
Причины классового дисбаланса
- Смещение выборки - это происходит, когда некоторые выборки населения систематически с большей вероятностью будут выбраны в выборку, чем другие. В медицине это также называется установлением предвзятости. Систематическая ошибка выборки ограничивает возможность обобщения результатов, потому что это угроза для внешней достоверности, в частности, достоверности для совокупности.
- Специфические для домена. Как упоминалось выше, в области медицины некоторые образцы заболеваний встречаются редко. Несбалансированность предметно-ориентированного класса.
- Ошибки маркировки - менее распространенная причина дисбаланса классов, это происходит из-за небрежности при маркировке.
Решения для классового дисбаланса
Передискретизация: Простое и эффективное решение - добавить больше образцов класса меньшинства или удалить большую часть класса во время моделирования.
Балансировка веса. Успех этого решения зависит от поставленных задач. Это требует, чтобы мы смоделировали веса таким образом, чтобы сделать его чувствительным или сфокусировать более редкие классы путем корректировки функций потерь. Проблема с балансировкой веса заключается в том, насколько следует определять эту корректировку обновляемых весов.
Ансамбли: Ансамблевые модели более устойчивы к классу дисбаланса. Методы ансамбля показали лучшие результаты, чем решение передискретизации. Известно, что ансамблевые классификаторы повышают точность отдельных классификаторов, комбинируя несколько из них, и успешно применяются к несбалансированным наборам данных.
Существуют различные ансамблевые модели:
- Усиление ансамблевого обучения;
- Ансамблевое обучение на основе бэггинга;
- Гибридные комбинированные ансамбли.
Мы рассмотрим каждое решение проблемы дисбаланса классов в отдельном блоге. А пока оставайся дома и будь в безопасности.
Спасибо за чтение. Если вам понравилось читать мои статьи, загляните в Math + Computing = AI, чтобы увидеть больше статей.
Свяжитесь со мной в LinkedIn и Twitter 🐅 ✋
Ссылка
CS 329S: Дизайн систем машинного обучения, Чип Хуйен, Майкл Купер