чому нам потрібно обробляти дисбаланс даних?


12

Мені потрібно знати, чому нам потрібно мати справу з дисбалансом даних. Я знаю, як впоратися з цим і різними методами вирішити проблему, яка полягає у вибіранні або зменшенні вибірки або за допомогою Smote.

Наприклад, якщо у мене рідкісне захворювання - 1 відсоток із 100, і скажемо, що я вирішив створити збалансований набір даних для мого навчального набору, який є: зразок 50/50. хвороба? хоча співвідношення дорівнює 1 100. Отже

  1. Чому нам потрібно боротися з дисбалансом даних?
  2. Яке рекомендується співвідношення для встановлення балансу

Мені подобається це питання. Розуміння, чому це дуже важливо.
DaL

Дивіться відповідне запитання у перехресному підтвердженому stats.stackexchange.com/questions/312780/…
DaL

Відповіді:


8

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

Скажімо, що 1% населення має таке рідкісне захворювання. Припустимо, ви покладаєте однакові витрати на те, що здоровий чоловік хворий або каже, що хворий чоловік здоровий. Надайте модель, яка говорить про те, що всі здорові, отримайте 99% точності та йдіть додому рано. Проблема такої моделі полягає в тому, що, хоча вона має високу точність, вона, ймовірно, не буде тим, що ви шукаєте. Більшу частину часу ви хочете знайти людей із захворюванням (надаючи високу вагу помилковим негативам) набагато більше, ніж ви боїтесь відправити здорову людину на непотрібні тести (низька вага до помилкових позитивних результатів). У реальній світовій проблемі зі здоров’ям співвідношення ваги легко може становити від 1 до 1000.

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

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

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

Smote працює по-іншому, що не спрацювало так добре, коли я спробував це, але це може відповідати вашій проблемі.


Тож, наскільки я розумію, краще збалансувати дані, оскільки більшість алгоритмів добре працює на збалансованих даних, хоча він не відповідає натуральному розподілу?
сара

Чи можете ви детальніше зупинитися на цьому реченні, "коли вартість помилок не відповідає розподілу зразків". Я не отримав це дуже добре
sara

1
Відповідь на перший коментар: Неврівноважений набір даних призведе до того, що алгоритми отримують хороші результати, повертаючи більшість. Це буде проблемою, якщо ви більше зацікавитеся меншиною. Отже, врівноваження - це спосіб змусити алгоритм надати меншу вагу меншині. Однак, коли ви збалансуєтеся, розподіл поїздів та тестовий розподіл відрізняються, тому вам потрібно адаптувати свою модель назад до тестового розподілу (як у запропонованому мною способі).
DaL

Відповідь на другий коментар: Дійсно, цей пункт був трохи незрозумілим. Я відредагував відповідь. Це зрозуміло зараз?
DaL

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

4
  • Коротка відповідь:

вам потрібно мати справу з дисбалансом класу, якщо / тому, що робить вашу модель кращою (за невидимими даними). "Краще" - це те, що ти повинен визначити сам. Це може бути точність, це може бути вартість, це може бути справжня позитивна ставка тощо.

  • Довга відповідь:

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

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

В деяких випадках один клас зустрічається набагато більше, ніж інший. І це добре. У цьому випадку ви повинні подивитися, чи певні помилки дорожчі за інші. Це типовий приклад виявлення смертельних захворювань у пацієнтів, з'ясування того, чи є хтось терористом тощо. Це повертається до короткої відповіді. Якщо деякі помилки коштують дорожче за інші, ви захочете їх "покарати", надавши їм більшу вартість. Тому краща модель матиме меншу вартість. Якщо всі помилки є такими ж поганими, то немає жодної реальної причини, чому ви повинні використовувати чутливі до витрат моделі.

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

  1. він не представляє справжнього розподілу даних

Іноді ваші дані є "незбалансованими", оскільки вони не представляють справжнього розподілу даних. У цьому випадку ви повинні бути обережними, оскільки у вас є "занадто багато" прикладів одного класу і "занадто мало" іншого, і, отже, вам потрібно переконатися, що ваша модель не переоцінює / недоотримує одну цих класів.

Це відрізняється від використання витрат, оскільки, можливо, одна помилка не є гіршою, ніж інша. Що трапиться, це те, що ви будете упереджені, і це не вигідно для вашої моделі, якщо невидимі дані не мають такого ж розподілу, як дані, на яких ви навчалися.

Скажімо, я даю вам дані тренувань, і ваша мета - здогадатися, чи щось червоне чи синє. Якщо ви помилитесь синім для червоного чи червоним для синього, це не має великого значення. У ваших даних про навчання є 90% червоних випадків, коли в реальному житті вони трапляються лише 10% часу. Вам потрібно буде з цим розібратися, щоб покращити вашу модель.


Дуже розбірлива відповідь. Чи можете ви пояснити більше на прикладі того, що ви розумієте під "якщо ваша модель краща, оскільки вона має низьку вартість, тоді розібрайтеся з дисбалансом". Чому я повинен мати справу з дисбалансом, якщо модель має низьку вартість?
сара

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