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

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

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

Відсоток даних, що належать до класу меншості Рівень незбалансованості
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.

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

 {example weight} = {original example weight} ×{downsampling factor} 

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

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

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

Зменшивши вибірку класу більшості, ви отримуєте наступні переваги.

  • Швидша збіжність. Під час навчання модель частіше бачить клас меншості, що допомагає їй швидше збігатися.
  • Менше місця на диску. Коли клас більшості містить меншу кількість прикладів більшої ваги, модель використовує менше місця на диску для зберігання цих значень ваги. Завдяки такій економії на диску залишається більше місця для класу меншості, тому модель може зібрати більше різноманітних прикладів із цього класу.

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

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

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

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

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

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

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

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