Що є першопричиною проблеми дисбалансу класів?


30

Останнім часом я багато думав про "проблему дисбалансу класів" у машино-статистичному навчанні, і все глибше втягуюсь у відчуття, що просто не розумію, що відбувається.

Спершу дозвольте мені визначити (або спробувати) визначити свої умови:

Проблема дисбалансу класів у машинному / статистичному навчанні полягає в тому, що деякі алгоритми бінарної класифікації (*) не спрацьовують добре, коли частка 0 класів до 1 класу дуже перекошена.

Так, у вищенаведеному, наприклад, якби було сто 0 класів для кожного 1 класу, я б сказав, що дисбаланс класів становить від 1 до 100 , або 1% .

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

Огляд стандартних текстів машинного / статистичного навчання виявляється мало:

  • Елементи статистичного нахилу та вступ до статистичного навчання не містять "класового дисбалансу" в індексі.
  • Машинне навчання для прогнозних даних Analytics також не містить "дисбаланс класів" в індексі.

  • Мерфі Machine Learning: Вероятностная перспектива робить містить «клас дисбаланс * в індексі Йдеться розділ про SVM, де я знайшов наступний дражливий коментар .:

    Варто пам’ятати, що всі ці труднощі та безліч евристик, які були запропоновані для їх виправлення, принципово виникають через те, що SVM не моделює невизначеність, використовуючи ймовірності, тому результати їх результатів не можна порівняти по класах.

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

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

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

  • Це щось, що ми робимо для себе із погано підібраними алгоритмами та ледачими порогами класифікації за замовчуванням?
  • Чи зникає це, якщо ми завжди підходимо до моделей вірогідності, які оптимізують належні критерії оцінювання? Сказано інакше, чи є причиною просто поганий вибір функції втрат, тобто оцінка прогнозованої сили моделі на основі жорстких правил класифікації та загальної точності?
  • Якщо так, то чи марні (або принаймні менш корисні) моделі, які не оптимізують правильні правила балу?

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


1
Очевидна проблема може виникнути, коли учень штрафує втрати кожного класу однаково. Повернення всього того ж класу теоретично могло мінімізувати загальні втрати.
Firebug

1
Я забув додати poor choice of loss functionдо свого списку. Отже, чи вважаєте ви, що це справедливо навіть для правильних правил скорингу як функцій втрат?
Метью Друрі

Я думаю так. Я думаю, що ми можемо сформулювати проблему, коли мінімізація втрат великого класу лише мінімізує втрату всієї проблеми, тоді як, як правило, меншості представляють більший інтерес.
Firebug

3
Я погоджуюся з настроями питання. У мене була діюча гіпотеза (хоч із задоволенням її відкидаю), що немає проблеми з дисбалансом класу як такої, просто ми тренуємося з функціями втрат, які не представляють, що ми будемо використовувати для вимірювання успіху на тестових даних. І це важко назвати помилкою, оскільки це майже стандартна практика: наприклад, це не стандартне значення для оптимізації прямої оцінки AUC або F1, але це звичайні показники успіху для проблем з дисбалансом класів. То, може, це проблема дисбалансу класу?
DavidR

9
Причиною проблеми дисбалансу класу є умова використовувати точність як функцію втрат. Класовий дисбаланс є характерною проблемою (наприклад, діагностика рідкісних захворювань), яку можна вирішити за допомогою декількох стратегій. Використання ваги класу, оберненого пропорційному розміру класу при обчисленні функції втрат, є однією з них. Крім цього, AUC як функція збитку є хорошою ідеєю, оскільки спеціально розрізняє істинно-позитивний та хибнопозитивний. Тому основна проблема проблеми дисбалансу класу - функція втрат. Хоча велике запитання, на яке я не смію відповісти.
Nikolas Rieble

Відповіді:


4

Запис з Енциклопедії машинного навчання ( https://cling.csd.uwo.ca/papers/cost_sensitive.pdf ) корисно пояснює, що те, що називається "проблемою дисбалансу класу", краще розуміти як три окремі проблеми:

 (1) assuming that an accuracy metric is appropriate when it is not

 (2) assuming that the test distribution matches the training 
     distribution when it does not

 (3) assuming that you have enough minority class data when you do not

Автори пояснюють:

Неврівноважені набори даних класів зустрічаються у багатьох реальних додатках, де розподіл даних класів сильно незбалансований. Знову ж таки, не втрачаючи загальності, ми припускаємо, що меншості або рідкісні класи - це позитивний клас, а мажоритарний клас - негативний клас. Часто клас міноритарності дуже малий, наприклад 1% набору даних. Якщо ми застосуємо більшість традиційних (нечутливих до витрат) класифікаторів до набору даних, вони, ймовірно, спрогнозують все як негативне (клас більшості). Це часто розглядалося як проблема в навчанні з сильно незбалансованих наборів даних.

Однак, як зазначає (Provost, 2000), два основні припущення часто зроблені в традиційних класифікаторах, що не чутливі до витрат. Перший полягає в тому, що метою класифікаторів є максимальна точність (або мінімізація рівня помилок); друге - що розподіл наборів даних для навчальних і тестових даних однаковий. Згідно з цими двома припущеннями, часто прогнозувати все як негативне для сильно незбалансованого набору даних. (Drummond and Holte, 2005) показують, що в цій ситуації зазвичай дуже важко перевершити цей простий класифікатор.

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

У випадку, коли вартість помилкової класифікації не дорівнює, зазвичай дорожче неправильно класифікувати приклад меншості (позитивного) у мажоритарний (негативний) клас, ніж мажоритарний приклад до класу меншин (інакше правдоподібніше все передбачити як негативний). Тобто FN> FP. Таким чином, враховуючи значення FN та FP, для вирішення проблеми неврівноваженості класів можна використовувати та застосовувати різноманітні методи чутливого метаучення (Ling and Li, 1998; Japkowicz and Stephen, 2002). Якщо значення FN і FP явно невідомі, FN і FP можна призначити пропорційними p (-): p (+) (Japkowicz and Stephen, 2002).

У разі, якщо розподіли класів наборів даних для навчальних та тестових даних відрізняються (наприклад, якщо дані про навчання дуже врівноважені, але дані тесту є більш збалансованими), очевидним підходом є вибірка навчальних даних таким чином, щоб її розподіл по класах був таким самим дані випробувань (шляхом перебігу класу меншин та / або підкреслення мажоритарного класу) (Provost, 2000).

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

Таким чином, як випливає з Мерфі, немає нічого принципово проблемного у використанні незбалансованих класів, за умови, що ви уникнете цих трьох помилок. Моделі, що дають задні ймовірності, полегшують уникнути помилок (1), ніж роблять дискримінантні моделі, такі як SVM, оскільки вони дозволяють відокремити висновок від прийняття рішення. (Див Єпископа розділ 1.5.4 Виведення і рішення для подальшого обговорення цього останнього пункту.)

Сподіваюся, що це допомагає.


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

@probabilityislogic (і Білл Вандер Лугт): Є ще одна можлива проблема, про яку не йдеться в цьому тексті: чи адекватний дискримінаційний Ansatz. Недостатньо дискримінаційна модель, коли однокласність буде доречнішою, також може призвести до "проблем класового дисбалансу".
cbeleites підтримує Моніку

8

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

Тому поведінка таких моделей визначається тим, що ми вкладаємо у функцію втрат.

Уявіть, що у нас є модель, Ж, що присвоює деякий довільний реальний скаляр кожному прикладу, такий, що більше негативних значень мають тенденцію вказувати на клас А, а більше додатних чисел мають тенденцію вказувати на клас B.

yf=f(х)

Ми використовуємо Ж створити модель Г, який призначає поріг, б, на вихід Ж, неявно або явно, що коли Ж виводить значення більше, ніж б потім модель Г прогнозує клас B, інакше він прогнозує клас А.

yg={Bif f(x)>bAotherwise

By varying the threshold b that model G learns, we can vary the proportion of examples that are classified as class A or class B. We can move along a curve of precision/recall, for each class. A higher threshold gives lower recall for class B, but probably higher precision.

Imagine that the model F is such that if we choose a threshold that gives equal precision and recall to either class, then the accuracy of model G is 90%, for either class (by symmetry). So, given a training example, G would get the example right 90% of the time, no matter what is the ground truth, A or B. This is presumably where we want to get to? Let's call this our 'ideal threshold', or 'ideal model G', or perhaps G.

Now, let's say we have a loss function which is:

L=1Nn=1NIyig(xi)

where Ic is an indicator variable that is 1 when c is true, else 0, yi is the true class for example i, and g(xi) is the predicted class for example i, by model G.

Imagine that we have a dataset that has 100 times as many training examples of class A than class B. And then we feed examples through. For every 99 examples of A, we expect to get 990.9=89.1 examples correct, and 990.1=9.9 examples incorrect. Similarly, for every 1 example of B, we expect to get 10.9=0.9 examples correct, and 10.1=0.1 examples incorrect. The expected loss will be:

L=(9.9+0.1)/100=0.1

Now, lets look at a model G where the threshold is set such that class A is systematically chosen. Now, for every 99 examples of A, all 99 will be correct. Zero loss. But each example of B will be systematically not chosen, giving a loss of 1/100, so the expected loss over the training set will be:

L=0.01

Ten times lower than the loss when setting the threshold such as to assign equal recall and precision to each class.

Therefore, the loss function will drive model G to choose a threshold which chooses A with higher probability than class B, driving up the recall for class A, but lowering that for class B. The resulting model no longer matches what we might hope, no longer matches our ideal model G.

To correct the model, we'd need to for example modify the loss function such that getting B wrong costs a lot more than getting A wrong. Then this will modify the loss function to have a minimum closer to the earlier ideal model G, which assigned equal precision/recall to each class.

Alternatively, we can modify the dataset by cloning every B example 99 times, which will also cause the loss function to no longer have a minimum at a position different from our earlier ideal threshold.


4
Can you please try to make your answer a bit more particular to the questions being asked? While clearly thoughtful it reads mostly as commentary rather than an answer. For example, just for commentary purposes one could argue that using an improper scoring rule like the loss function defined is fundamentally wrong and therefore the subsequent analysis is invalid.
usεr11852 says Reinstate Monic

I dont think one can say that the loss function is 'right' or 'wrong' without knowing the actual purpose of the model. If the goal is for the machine learning model to 'look cool/useful', then the G model is better, but if it's to maximize eg scoring on some test/exam, where 99 of the questions have answer A, and one has answer B, and we only have a 90% chance of predicting the answer correctly, we're better off just choosing A for everything, and that's what the loss function above does.
Hugh Perkins

2
I generally agree; I am not fully convinced about the proper scoring rule necessity but on the other hand the "actual purpose" of any classification model is the useful prediction of class membership, ie. you need an informed utility function. I would argue that generally for imbalanced problems assigning cost/gain to FP, TP, etc. is probably the best way to have a reasonable utility function; in the absence of relevant domain knowledge this can be hairy. I almost always use as my first choice Cohen's k, a somewhat conservative metric of "agreement", because of that reason.
usεr11852 says Reinstate Monic

I googled for 'utility function', but nothing came up. Do you have a link/reference? I think from the context, what you are calling a 'utility function' is essentially the model F above? Model F is invariant across the various scenarios. One interesting question perhaps is, if one trains model G directly, using unbalanced data, will the underlying, possibly implicit, model F be similar/identical to a model F trained, via training model G, on balanced data?
Hugh Perkins

3
This presumes implicitly (1) that the KPI we attempt to maximize is accuracy, and (2) that accuracy is an appropriate KPI for classification model evaluation. It isn't.
S. Kolassa - Reinstate Monica

0

Note that one-class classifiers don't have an imbalance problem as they look at each class independently from all other classes and they can cope with "not-classes" by just not modeling them. (They may have a problem with too small sample size, of course).

Many problems that would be more appropriately modeled by one-class classifiers lead to ill-defined models when dicriminative approaches are used, of which "class imbalance problems" are one symptom.

As an example, consider some product that can be good to be sold or not. Such a situation is usually characterized by

class         | "good"                        | "not good"
--------------+-------------------------------+------------------------------------------
sample size   | large                         | small
              |                               |
feature space | single, well-delimited region | many possibilities of *something* wrong 
              |                               | (possibly well-defined sub-groups of
              |                               |    particular fault reasons/mechanisms) 
              |                               | => not a well defined region, 
              |                               | spread over large parts of feature space
              |                               |
future cases  | can be expected to end up     | may show up *anywhere* 
              | inside modeled region         | (except in good region)

Thus, class "good" is well-defined while class "not-good" is ill-defined. If such a situation is modeled by a discriminative classifier, we have a two-fold "imbalance problem": not only has the "not-good" class small sample size, it also has even lower sample density (fewer samples spread out over a larger part of the feature space).

This type of "class imbalance problem" will vanish when the task is modeled as one-class recognition of the well-defined "good" class.

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