Набори даних: незбалансовані набори

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

У таблиці нижче наведено загальноприйняті назви й діапазони для різних рівнів незбалансованості.

Відсоток даних, що належать до класу меншості Рівень незбалансованості
20–40% набору даних Незначний
1–20% набору даних Помірний
< 1% набору даних Надзвичайний

Наприклад, розгляньмо набір даних для виявлення вірусів, у якому клас меншості становить 0,5% набору даних, а клас більшості – 99,5%. Надзвичайно незбалансовані набори даних, такі як цей, часто трапляються в медицині, оскільки більшість суб’єктів не заражені вірусом.

Рисунок 5.  Гістограма з двома стовпцями. В одному стовпці представлено близько 200 негативних класів, а в іншому – 1 позитивний.
Рисунок 5. Надзвичайно незбалансований набір даних.

 

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

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

Зменшення вибірки й збільшення ваги

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

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

Крок 1. Зменшення вибірки класу більшості. Розгляньмо набір даних для виявлення вірусів, показаний на рисунку 5, у якому на 200 негативних міток припадає 1 позитивна. Зменшення вибірки в 10 разів покращує баланс, і на 1 позитивну мітку вже припадає 20 негативних (5%). Хоча отриманий навчальний набір усе ще помірно незбалансований, співвідношення позитивних і негативних міток значно покращилося, як порівняти з початковим надзвичайно незбалансованим набором даних (0,5%).

Рисунок 6. Гістограма з двома стовпцями. В одному стовпці представлено 20 негативних класів, а в іншому – 1 позитивний.
Рисунок 6. Зменшення вибірки.

 

Крок 2. Збільшення ваги класу, вибірку якого було зменшено. Посильте вагу прикладів для цього класу. Після зменшення вибірки в 10 разів вага прикладу має становити 10. (Це може здатися нелогічним, але пізніше ми пояснимо, чому має бути саме так.)

Рисунок 7. Двохетапна діаграма зменшення вибірки й збільшення ваги.
            Крок 1. У результаті зменшення вибірки вилучаються випадкові приклади з класу більшості. Крок 2. Збільшення ваги посилює вагу прикладів, вибірку яких було зменшено.
Рисунок 7. Збільшення ваги.

 

Термін вага не стосується параметрів моделі (наприклад, w1 або w2). У цьому контексті він означає вагу прикладів, що збільшує важливість кожного з них під час навчання. Вага прикладу 10 означає, що модель вважає його в 10 разів важливішим (при обчисленні втрат), ніж приклад із вагою 1.

Вага має дорівнювати коефіцієнту, який ви використовували для зменшення вибірки:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

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

Коефіцієнти перебалансування

Наскільки слід зменшити вибірку й збільшити вагу, щоб перебалансувати набір даних? Щоб дізнатися відповідь, слід поекспериментувати з коефіцієнтом перебалансування так само, як і з іншими гіперпараметрами. Проте відповідь, зрештою, залежить від таких факторів:

  • розмір пакета;
  • коефіцієнт незбалансованості;
  • кількість прикладів у навчальному наборі.

Найкраще, якщо в кожному пакеті буде багато прикладів із класу меншості. Навчання на пакетах, у яких немає достатньої кількості прикладів із класу меншості, буде дуже неефективним. Розмір пакета має бути в кілька разів більшим за коефіцієнт незбалансованості. Наприклад, якщо коефіцієнт незбалансованості становить 100:1, розмір пакета має бути щонайменше 500.

Вправа. Перевірте свої знання

Розгляньте ситуацію, наведену нижче.

  • Навчальний набір містить трохи більше мільярда прикладів.
  • Розмір пакета становить 128.
  • Коефіцієнт незбалансованості – 100:1. Тому навчальний набір розподілено так:
    • ~1 мільярд прикладів із класу більшості;
    • ~10 мільйонів прикладів із класу меншості.
Які з наступних тверджень правильні?
Отримана модель покращиться, якщо збільшити розмір пакета до 1024.
Якщо розмір пакета становитиме 1024, кожен пакет у середньому міститиме близько 10 прикладів із класу меншості, завдяки чому після навчання можна отримати значно якіснішу модель.
Якщо не змінювати розмір пакета 128, але зменшити вибірку (і збільшити вагу) так, щоб отримати коефіцієнт 20:1, отримана модель покращиться.
Завдяки зменшенню вибірки кожен пакет зі 128 прикладів міститиме в середньому 21 приклад із класу меншості, і цього буде достатньо для навчання корисної моделі. Зверніть увагу: кількість прикладів, яка міститиметься в навчальному наборі, зменшиться з трохи більше ніж мільярда до приблизно 60 мільйонів.
Поточні гіперпараметри в нормі.
Якщо розмір пакета становитиме 128, кожен пакет у середньому міститиме близько 1 прикладу з класу меншості, і цього може бути недостатньо для навчання корисної моделі.