В недавнем, хорошо полученном вопросе Тим спрашивает, когда несбалансированные данные действительно являются проблемой в машинном обучении ? Предпосылка вопроса заключается в том, что существует много литературы по машинному обучению, в которой обсуждается баланс классов и проблема несбалансированных классов . Идея состоит в том, что наборы данных с дисбалансом между положительным и отрицательным классом вызывают проблемы для некоторых алгоритмов классификации машинного обучения (я включаю здесь вероятностные модели), и следует искать методы, чтобы «сбалансировать» набор данных, восстанавливая идеальные 50/50 разделить между положительными и отрицательными классами.
Общий смысл ответов с отбитым голосом состоит в том, что «это не так, по крайней мере, если вы вдумчивы в своем моделировании». М. Генри Л. в своем комментарии к принятому ответу с утверждением утверждает,
[...] нет проблем низкого уровня с использованием несбалансированных данных. По моему опыту, совет «избегать несбалансированных данных» зависит либо от алгоритма, либо от унаследованной мудрости. Я согласен с AdamO, что в целом несбалансированные данные не представляют концептуальной проблемы для четко определенной модели.
AdamO утверждает, что «проблема» с балансом классов действительно является проблемой редкости
Поэтому, по крайней мере, в регрессии (но я подозреваю, что при любых обстоятельствах), единственная проблема с несбалансированными данными заключается в том, что у вас фактически небольшой размер выборки. Если какой-либо метод подходит для числа людей в более редком классе, не должно быть никаких проблем, если их пропорциональное членство несбалансировано.
Если это настоящая проблема, остается открытым вопрос: какова цель всех методов повторной выборки, предназначенных для балансировки набора данных: избыточная выборка, недостаточная выборка, SMOTE и т. Д.? Очевидно, что они не решают проблему неявного небольшого размера выборки, вы не можете создавать информацию из ничего!
Ответы:
Некоторые методы выборки предназначены для корректировки смещения (если уровень численности населения известен и отличается), но я согласен с мнением о том, что несбалансированный класс не является самой проблемой. Одна из основных причин сводится к производительности обработки. Например, если наш целевой класс является крайне редким случаем в масштабе 1: 100000, наш набор данных моделирования будет массовым, а вычисления - трудными. Выборка, независимо от стратегии, всегда отбрасывает некоторые данные, чтобы уменьшить общий размер набора данных. Я полагаю, что различие между всеми различными стратегиями выборки заключается лишь в том, насколько разумны данные, которые мы отбрасываем, не жертвуя потерями в возможностях прогнозирования.
источник
Проблема, которую пытаются решить эти методы, состоит в том, чтобы увеличить влияние класса меньшинства на функцию стоимости. Это потому, что алгоритмы пытаются хорошо вписать весь набор данных, а затем адаптируются к большинству. Другим подходом было бы использование весов классов, и этот подход в большинстве случаев дает лучшие результаты, поскольку не происходит потери информации из-за недостаточной выборки или потери производительности и введения шума из-за избыточной выборки.
источник
Я приведу вам более экстремальный пример. Рассмотрим случай, когда у вас есть набор данных с 99 точками данных, помеченными как положительные, и только одна - с отрицательными. Во время обучения ваша модель поймет, что если она классифицирует все как положительные, то в конечном итоге ей это сойдет с рук. Одним из способов решения этой проблемы является избыточная выборка недопредставленного класса, а другой - выборочная выборка перепредставленного класса. Например, в наборе данных из 70 положительных и 30 отрицательных меток я мог бы выбрать отрицательные метки с заменой и положительные без замены, что приведет к тому, что моя модель встретит больше отрицательных меток во время обучения. Таким образом, если моя модель попытается классифицировать все как положительное, это приведет к большим потерям, чем в противном случае.
Еще один подход, который не относится к выборке, заключается в корректировке функции стоимости, чтобы придать более высокие веса точкам данных с меткой меньшинства. Например, если вы используете потери NLL в наборе данных, где 1 перепредставлены по сравнению с 0 среди меток, вы можете настроить функцию потерь так:
гдеβ> α , Величина разности β- α зависит от степени перепредставленности / недопредставленности.
источник
Я собираюсь не согласиться с предпосылкой, что несбалансированные данные не являются проблемой в машинном обучении. Возможно, в регрессии меньше, но это, безусловно, в классификации.
Несбалансированные данные актуальны в приложениях машинного обучения из-за снижения производительности алгоритмов (исследования, о которых я думаю, специально посвящены классификаторам) при настройке дисбаланса классов.
Возьмите простую двоичную задачу классификации с соотношением 25: 1 обучающих примеров класса А против класса В. Исследования показали, что точность, относящаяся к классификации класса B, наносит удар просто из-за уменьшенного соотношения данных о тренировках. Имеет смысл, поскольку чем меньше у вас будет обучающих примеров, тем хуже ваш классификатор будет тренироваться на этих данных. Как заявил один из комментаторов, вы не можете сделать что-то из ничего. Из статей, которые я видел, в задачах мультиклассовой классификации кажется, что вам нужно получить соотношение 10: 1, чтобы начать оказывать существенное влияние на точность класса меньшинства. Возможно, люди, которые читают другую литературу, чем я видел, имеют разные мнения.
Итак, предлагаются следующие решения: избыточная выборка класса меньшинства, низкая выборка класса большинства или использование SMOTE в классе меньшинства. Да, вы действительно не можете создавать данные из ниоткуда (вроде SMOTE, но не совсем), если только вы не приступили к созданию искусственных данных для класса меньшинства (нет простого метода). Другие методы, такие как MixUp и тому подобное, потенциально попадают в эту концепцию, но я думаю, что они являются более регуляризаторами, чем решения для дисбаланса классов. В газетах, которые я прочитал, «Чрезмерная выборка> SMOTE> Недосэмплинг».
Независимо от вашей техники, вы изменяете отношения между классами большинства и меньшинства, что может повлиять на заболеваемость. Другими словами, если вы создаете классификатор для выявления супер-редкой болезни мозга X, частота которой составляет 1 на 100 000, а ваш классификатор - 1: 1, вы можете быть более чувствительным и менее конкретным с большим количеством ложных срабатываний , Если важно, чтобы вы выявляли эти случаи и выносили решения позже, все в порядке. Если нет, вы потратили много времени и денег других людей. Эту проблему в конечном итоге нужно будет решить.
Итак, чтобы ответить на вопрос:
tl / dr. Операции балансировки классов, такие как Over / Undersampling и SMOTE (и синтетические данные), существуют для улучшения производительности алгоритма машинного обучения (классификатора) путем устранения присущих ему характеристик производительности алгоритма, вызванных самим дисбалансом .
источник