Неврівноважені класи - Як мінімізувати помилкові негативи?


11

У мене є набір даних, який має атрибут бінарного класу. Є 623 випадки з класом +1 (рак позитивний) та 101 671 екземпляр з класом -1 (рак негативний).

Я випробував різні алгоритми (Naive Bayes, Random Forest, AODE, C4.5), і всі вони мають неприйнятні помилкові відхилення. Випадковий ліс має найвищу загальну точність прогнозування (99,5%) та найнижчий хибний негативний коефіцієнт, але все ж пропускає 79% позитивних класів (тобто не виявляє 79% злоякісних пухлин).

Будь-які ідеї, як я можу покращити цю ситуацію?

Дякую!


Ви можете подивитися на це запитання, де я отримав цікаві відповіді на цю проблему. З найкращими побажаннями
Майкл Хурмен

Відповіді:


9

Дисбаланс класів - дуже поширена проблема. Ви можете або переоцінити позитивний клас (або підкреслити мінус), або додати ваги класу.

Інша річ, яку слід пам’ятати в цьому випадку, полягає в тому, що точність тут не дуже корисна метрика. Ви можете врахувати бал AUC або F1 .

Зміна порогу прийняття рішення може здатися привабливою, але, очевидно, призведе до (у цьому випадку швидше різко) збільшення помилкових позитивних результатів (хоча, можливо, ФП не такі погані, як ФН у випадку медичної діагностики, якщо тести не надто дорогі).

Більш глибокий аналіз варіантів у разі класу дисбалансу надається тут .


3

Незважаючи на те, що відповідь на насправді завжди trueабо false, ви можете зробити свій клас атрибутів ярлики , а числа з плаваючою точкою, тобто 1.0 і 0.0 (або 100 і 0). Тобто ви можете вирішити, що це проблема регресії , а не проблема класифікації.

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

З таким результатом ви або ваш клієнт можете визначити допустимий поріг (наприклад, 0,3). Звичайно, буде більше помилкових позитивних результатів, але для деяких застосувань, як-от виявлення раку, це оптимально.

Перенапруження (позитивні) або недооцінка (негативи) - це також способи виправити це, але це потрібно зробити продумано, можна пожертвувати точністю і все ж жертвувати контролем для переміщення порогу після створення даних і тренувань.


0

Недостатня і надмірна вибірка як методика вже згадувалася, але я думав, що вкажу на загальновживаний варіант:

SMOTE : Техніка надмірного відбору проб синтетичних меншин

Він був представлений у цій роботі у 2002 році . Ось фрагмент реферату:

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


Ви можете використовувати його легко в Python, використовуючи в imbalanced-learnпакет , який міститься в CONTRIB модулі Scikit-Learn і повинен бути встановлений окремо.

disbalanced-learn - це пакет python, що пропонує ряд методів повторного відбору проб, які зазвичай використовуються в наборах даних, що демонструють сильний дисбаланс між класом.

Цей пакет включає способи комбінування надмірно / недостатньо вибірки, а також набір утиліт для генерації пакетів даних, які можуть надходити в Keras / Tensorflow.

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