почему мы должны справиться с дисбалансом данных?


12

Мне нужно знать, почему мы должны бороться с дисбалансом данных. Я знаю, как с этим справляться, и различными методами для решения проблемы, которая заключается в повышении или понижении или использовании Smote.

Например, если у меня редкое заболевание 1% из 100, и, скажем, я решил иметь сбалансированный набор данных для моего тренировочного набора, а именно: 50/50 выборка. Не заставит ли машина думать, что 50% пациентов будут иметь болезнь? хотя соотношение составляет 1 из 100. Так

  1. Почему мы должны бороться с дисбалансом данных?
  2. Каков рекомендуемый коэффициент для установки баланса

Мне нравится этот вопрос. Понимание, почему это очень важно.
DaL

Ответы:


8

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

Допустим, что 1% населения имеют это редкое заболевание. Предположим, что вы назначаете ту же цену, говоря, что здоровый человек болен, или говорите, что больной человек здоров. Представьте модель, которая говорит, что все здоровы, с точностью до 99% и рано возвращаются домой. Проблема с такой моделью заключается в том, что, хотя она имеет высокую точность, она, вероятно, не соответствует тому, что вы ищете. В большинстве случаев вы хотите найти людей с болезнью (которые дают ложные отрицательные результаты с большим весом) гораздо больше, чем вы боитесь отправить здорового человека на ненужный тест (низкий вес для ложных срабатываний). В реальной проблеме со здоровьем соотношение веса может легко составлять от 1 до 1000.

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

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

Просто установить отношение к какой-либо другой проблеме не будет работать, так как у вас будет такая же проблема.

Smote работает по-другому, что не сработало, когда я попробовал, но это могло бы помочь вашей проблеме.


Итак, насколько я понимаю, лучше сбалансировать данные, потому что большинство алгоритмов хорошо работают на сбалансированных данных, даже если они не соответствуют естественному распределению?
сара

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

1
Отвечая на первый комментарий: несбалансированный набор данных приведет к тому, что алгоритмы получат хорошие результаты, вернув большинство. Это будет проблемой, если вы заинтересованы в меньшинстве больше. Таким образом, балансировка - это способ заставить алгоритм придать больший вес меньшинству. Однако после того, как вы уравнялись, распределение поездов и распределение тестов различаются, поэтому вам нужно адаптировать свою модель обратно к распределению тестов (как в предложенном мной методе).
17

Отвечая на второй комментарий: действительно, этот момент был немного неясным. Я отредактировал ответ. Это теперь ясно?
17

да, так как я понимаю, что обучение и распределение тестов должны быть одинаковыми, поэтому разве это не будет решением, что после того, как я уравняю свой тренировочный набор с соотношением 50 к 50, я пойду и также установлю свой тестовый набор на 50 50?
сара

3
  • Короткий ответ:

вам нужно бороться с дисбалансом классов, если / потому что это делает вашу модель лучше (на невидимых данных). «Лучше» - это то, что вы должны определить сами. Это может быть точность, это может быть стоимость, это может быть истинный положительный показатель и т. Д.

  • Длинный ответ:

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

  1. распределение данных само по себе несбалансировано

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

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

  1. это не представляет истинное распределение данных

Иногда ваши данные «несбалансированы», потому что они не отражают истинное распределение данных. В этом случае вы должны быть осторожны, потому что у вас есть «слишком много» примеров одного класса и «слишком мало» другого, и, следовательно, вы должны убедиться, что ваша модель не превышает / не подходит для одного из этих классов.

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

Допустим, я даю вам тренировочные данные, и ваша цель - угадать, красный или синий. Неважно, принимаете ли вы синий за красный или красный за синий. Ваши тренировочные данные имеют 90% красных случаев, когда в реальной жизни они случаются только в 10% случаев. Вы должны были бы иметь дело с этим, чтобы сделать вашу модель лучше.


Очень выверенный ответ. Можете ли вы объяснить на примере больше того, что вы имеете в виду под «если ваша модель лучше, потому что она имеет низкую стоимость, тогда разберитесь с дисбалансом». Почему я должен иметь дело с дисбалансом, если модель имеет низкую стоимость?
сара

Я немного отредактировал свой ответ, так что, надеюсь, он понятнее. Я имел в виду следующее: «если ваша модель считается лучше, когда она имеет низкую стоимость, а устранение дисбаланса снижает стоимость, то сделайте это».
Валентин Каломм
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.