Когда несбалансированные данные действительно являются проблемой в машинном обучении?

53

У нас уже было несколько вопросов о несбалансированных данных при использовании логистической регрессии , SVM , деревьев решений , пакетов и ряда других подобных вопросов, что делает эту тему очень популярной! К сожалению, каждый из вопросов, похоже, зависит от алгоритма, и я не нашел каких-либо общих рекомендаций по работе с несбалансированными данными.

Цитируя один из ответов Марка Клезена , касающийся несбалансированных данных

(...) сильно зависит от метода обучения. Большинство подходов общего назначения имеют один (или несколько) способов справиться с этим.

Но когда именно мы должны беспокоиться о несбалансированных данных? На какие алгоритмы это больше всего влияет и какие способны с этим справиться? Какие алгоритмы понадобятся нам для балансировки данных? Я знаю, что обсуждение каждого из алгоритмов было бы невозможно на сайте вопросов и ответов, как это, я скорее ищу общие рекомендации о том, когда это может быть проблемой.

Тим
источник
@ MatthewDrury спасибо, это интересный вопрос, но ИМХО, у него другая сфера применения. То, что я спрашиваю, для руководящих принципов, когда это действительно проблема. Конечно, ответ на вопрос « почему» приводит к ответу на вопрос « когда» , но я ищу точный ответ на вопрос « когда» .
Тим
9
Справедливо! Я с вами. Похоже, что «литература» посвящена тому, как решить проблему, не пытаясь убедить вас в том, что проблема действительно должна быть решена, и даже не сообщая вам, в каких ситуациях возникает проблема или нет. Одна из самых неприятных частей предмета для меня.
Мэтью Друри
2
@ MatthewDrury, это именно проблема!
Тим
1
Полный обзор методов не входит в сферу вопросов SE. Хотите уточнить вопрос?
AdamO

Ответы:

29

Не прямой ответ, но стоит отметить, что в статистической литературе некоторые предубеждения против несбалансированных данных имеют исторические корни.

Многие классические модели аккуратно упрощаются в предположении сбалансированных данных, особенно для таких методов, как ANOVA, которые тесно связаны с экспериментальным дизайном - традиционная / оригинальная мотивация для разработки статистических методов.

Но статистическая / вероятностная арифметика становится довольно уродливой, довольно быстрой, с несбалансированными данными. До широкого распространения компьютеров расчеты вручную были настолько обширными, что оценка моделей по несбалансированным данным была практически невозможна.

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

Это старая проблема, и ученые потратили много времени на работу над этой проблемой ... между тем, многие прикладные проблемы опередили / устранили это исследование, но старые привычки сильно умирают ...

Изменить, чтобы добавить:

Я понимаю, что не вышел и просто сказал это: нет проблемы низкого уровня с использованием несбалансированных данных. По моему опыту, совет «избегать несбалансированных данных» зависит либо от алгоритма, либо от унаследованной мудрости. Я согласен с AdamO, что в целом несбалансированные данные не представляют концептуальной проблемы для четко определенной модели.

Генри
источник
4
В то время как я, кажется, понимаю вашу точку зрения, в вашем помещении нет аргументов в их поддержку. Не могли бы вы привести некоторые аргументы и / или примеры о предубеждении и о том, как оно повлияло на машинное обучение?
Тим
1
Несмотря на то , что вы говорите, в основном , правда, это является также случай, когда такие методы , как дисперсионный является более надежной с симметричными данными, nonnormality является менее важной проблемой , с сбалансированными данными, например. Но я считаю, что все это ортогонально
смыслу
7
Я понимаю , что я не вышел и просто сказать: там не проблема низкого уровня с использованием несбалансированных данных. По моему опыту, совет «избегать несбалансированных данных» зависит либо от алгоритма, либо от унаследованной мудрости. Я согласен с AdamO, что в целом несбалансированные данные не представляют концептуальной проблемы для четко определенной модели.
Генри
1
@ M.HenryL. этот комментарий стоит добавить к вашему ответу для полноты.
Тим
16

WLOG вы можете сосредоточиться на дисбалансе в одном факторе, а не на более тонкой концепции «разреженности данных» или небольшом количестве ячеек.

В статистическом анализе, не сфокусированном на обучении, мы часто обнаруживаем, что подобная или лучшая сила предоставляется при использовании показателей склонности, чтобы сопоставить меньшую группу и большую группу. Это отчасти потому, что сопоставление служит той же цели, что и противодействие корректировке с точки зрения «уравновешивания» детерминант членства в группах, таким образом блокируя их мешающие эффекты. Обоснование количества факторов, которые можно скорректировать в многомерном анализе, зависит от размера выборки. В некоторых эмпирических правилах указывается одна переменная на каждые 10–20 наблюдений. В несбалансированных данных вы наивно полагаете, что ваши данные достаточно велики, но с редким числом людей, которые встречаются реже: инфляционная дисперсия существенно уменьшает власть. Вы, на самом деле, перестраиваетесь.

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

Adamo
источник
13

Несбалансированные данные являются проблемой только в зависимости от вашего приложения. Например, если ваши данные указывают на то, что A происходит в 99,99% случаев, а B - в 0,01% случаев, и вы пытаетесь предсказать определенный результат, ваш алгоритм, вероятно, всегда скажет A. Это, конечно, правильно! Ваш метод вряд ли получит лучшую точность прогноза, чем 99,99%. Однако во многих приложениях нас интересует не только правильность прогноза, но и причина, почему иногда случается B. Вот где несбалансированные данные становятся проблемой. Потому что трудно убедить ваш метод, что он может предсказывать лучше, чем 99,99%. Метод правильный, но не для вашего вопроса. Таким образом, решение несбалансированных данных в основном преднамеренно смещает ваши данные, чтобы получить интересные результаты вместо точных результатов.

В целом есть три случая:

  1. Вы просто заинтересованы в точном прогнозировании и считаете, что ваши данные являются репрезентативными. В этом случае вам не нужно ничего исправлять, грейтесь во славу ваших 99,99% точных прогнозов :).

  2. Вы заинтересованы в прогнозировании, но ваши данные взяты из достоверной выборки, но каким-то образом вы потеряли ряд наблюдений. Если вы потеряли наблюдения совершенно случайным образом, вы все еще в порядке. Если вы потеряли их предвзято, но не знаете, насколько предвзяты, вам понадобятся новые данные. Однако, если эти наблюдения теряются только на основании одной характеристики. (например, вы отсортировали результаты по A и B, но никак иначе, но потеряли половину B) Ypu может загрузить ваши данные.

  3. Вы не заинтересованы в точном глобальном прогнозе, но только в редком случае. В этом случае вы можете раздувать данные этого случая, загружая данные или, если у вас достаточно данных, выкидывая данные из других случаев. Обратите внимание, что это смещает ваши данные и результаты, поэтому шансы и такие результаты неверны!

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

Дзэн
источник
7
Как эта история меняется, когда мы оцениваем наши модели вероятностно?
Мэтью Друри
@MatthewDrury Вероятности из исходной модели в основном верны для случаев 1 и 3. Проблема заключается в том, что только с очень большими наборами данных B становится правильно отделимым от A, и вероятность B медленно сходится к своему реальному значению. Исключением является то, что если B очень четко отделен от A или совершенно случайно отделен от A, вероятности будут соответственно почти немедленно или никогда не сходятся.
Дзен
@zen Я скорее не согласен с тем, что логистическая регрессия менее уязвима. Логистическая регрессия весьма уязвима к дисбалансу данных, она создает небольшое смещение выборки, а отношения логарифмических коэффициентов имеют тенденцию к коэффициенту 2. Условная логистическая регрессия является альтернативой оценке того же OR без смещения.
AdamO
@AdamO Да, логистическая регрессия все еще уязвима. Но для деревьев небольшие случаи могут быть полностью проигнорированы. это не просто маленький размер выборки. даже для больших n и, например, распределения 80% -20% между деревьями параметров все еще могут выбрать вариант 80%, даже если доля параметра 20% явно увеличивается с некоторой переменной x. Если найдено новое более экстремальное наблюдение или если число ветвей слишком мало для любой экстремальной точки, дерево предскажет вариант 80%, в то время как логистическая регрессия будет менее вероятной. Вы правы насчет условной логистической регрессии
дзен
2
@MatthewDrury Стивен Сенн отлично обсуждает этот вопрос в статье, которую я часто перечитываю . Эвристически отношение шансов из таблицы 2x2 с записями abcd оценивается как ad / (bc) и имеет дисперсию 1 / a + 1 / b + 1 / c + 1 / d. Вы можете выбрать произвольно несколько случаев (a и c), и отношение шансов все еще не смещено, но дисперсия уходит в бесконечность. Это вопрос точности.
AdamO
8

Давайте предположим, что у нас есть два класса:

  • А , представляющий 99,99% населения
  • B , представляющий 0,01% населения

Давайте предположим, что мы заинтересованы в идентификации элементов класса B, которые могут быть людьми, затронутыми редким заболеванием или мошенником.

Только угадав А обучающимся бы высокий балл по их потери-функций и очень мало неправильно классифицированы элементы могут не двигаться, численно иглу (в стоге сена, в данном случае). В этом примере интуитивно понятна одна из «хитростей» для смягчения проблемы дисбаланса классов: настройка функции стоимости.

Я чувствую, что несбалансированные данные являются проблемой, когда модели показывают почти нулевую чувствительность и почти одну специфичность. Смотрите пример в этой статье в разделе «игнорирование проблемы» .

Проблемы часто имеют решение. Помимо вышеупомянутого трюка, есть и другие варианты . Тем не менее, они имеют цену: увеличение модели и вычислительной сложности.

Вопрос состоит в том, какие модели с большей вероятностью будут опираться на почти нулевую чувствительность и почти одну специфичность. Я чувствую, что это зависит от нескольких аспектов:

  • Меньшая вместимость, как обычно.
  • Некоторые функции стоимости могут бороться больше, чем другие: среднеквадратическая ошибка (MSE) менее уязвима, чем Huber - MSE должна быть менее благоприятной по отношению к неправильно классифицированным элементам класса B.
IcannotFixThis
источник
1
Это подразумевает неявно (1), что KPI, который мы пытаемся максимизировать, является точностью, и (2) что точность является подходящим KPI для оценки модели классификации. Это не так.
С. Коласса - Восстановить Монику
5

Если вы подумаете об этом: в идеально отделимом сильно несбалансированном наборе данных почти любой алгоритм будет работать без ошибок.

Следовательно, это больше проблема шума в данных и менее привязана к конкретному алгоритму. И вы не знаете заранее, какой алгоритм лучше всего компенсирует один конкретный тип шума.

В конце концов, вам просто нужно попробовать разные методы и принять решение путем перекрестной проверки.

Gerenuk
источник
Я чувствую, что этот комментарий немного недооценен. Я просто провожу немного времени, убеждая кого-то, что дисбаланс классов не всегда является проблемой.
RDK
Это не отвечает на вопрос. Как несбалансированные классы "больше проблема шума в данных"?
С. Коласса - Восстановить Монику
2
@StephanKolassa Это ответ, потому что он говорит, что несбалансированные данные не являются (напрямую) проблемой. Следовательно, вы не можете спросить «как» это. Для более общего вопроса «как справиться с проблемами шума при анализе данных» ответ таков: он специфичен для отдельных наборов данных, и все, что вы можете сделать, это настроить проверку и попробовать все, что работает. Если вы действительно хотите обсудить это, я думаю, что у ele.uri.edu/faculty/he/PDFfiles/ImbalancedLearning.pdf есть идеи. Но, в конце концов, вы должны сделать выборку / перевес / пороговое значение, и не стоит знать, что именно произошло в этом наборе данных.
Геренюк