Збалансуйте свої дані для машинного навчання за допомогою Amazon SageMaker Data Wrangler

Вихідний вузол: 1600102

Amazon SageMaker Data Wrangler це нова можливість Amazon SageMaker що дозволяє науковцям та інженерам швидше готувати дані для програм машинного навчання (ML) за допомогою візуального інтерфейсу. Він містить понад 300 вбудованих перетворень даних, тож ви можете швидко нормалізувати, трансформувати та комбінувати функції без необхідності писати код.

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

Нові оператори балансування

Нещодавно оголошені оператори балансування згруповані під Дані балансу перетворення типу в ДОДАТИ ТРАНФОРМУВАННЯ панель

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

Для вирішення цієї проблеми були запропоновані схеми балансування, які доповнюють дані, щоб вони були більш збалансованими перед навчанням класифікатора. Найпростішими методами балансування є або надмірна вибірка класу меншості шляхом дублювання вибірок меншості, або недостатня вибірка класу більшості шляхом видалення вибірок більшості. Ідея додавання вибірок синтетичної меншості до табличних даних була вперше запропонована в техніці передискретизації синтетичної меншості (SMOTE), де вибірки синтетичної меншості створюються шляхом інтерполяції пар вихідних точок меншості. Згідно з публікацією, SMOTE та інші схеми балансування були ретельно вивчені емпірично та показали, що вони покращують ефективність прогнозування в різних сценаріях. ЗМАГТИ, чи ні.

Data Wrangler тепер підтримує наступні оператори балансування як частину Дані балансу перетворення:

  • Випадкова передискретизація – Випадкове дублювання зразків меншості
  • Випадковий субсемплер – Довільне видалення більшості зразків
  • ПРИГРИТИ – Створення синтетичних зразків меншості шляхом інтерполяції реальних зразків меншості

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

Випадкова передвибірка

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

Випадкова занижена вибірка

Випадкова недостатня вибірка є протилежністю випадкової надмірної вибірки. Цей метод має на меті випадковий вибір і видалення зразків із мажоритарного класу, відповідно зменшуючи кількість прикладів у мажоритарному класі в перетворених даних. The випадковий недовибірка transform type дозволяє Data Wrangler автоматично зменшувати вибірку більшості класів за вас, видаляючи більшість вибірок із вашого набору даних.

ПРИГРИТИ

У SMOTE до даних додаються синтетичні вибірки меншості, щоб досягти бажаного співвідношення між вибірками більшості та меншості. Синтетичні зразки генеруються шляхом інтерполяції пар вихідних точок меншості. The ПРИГРИТИ transform підтримує балансування наборів даних, включаючи числові та нечислові функції. Числові ознаки інтерполюються середньозваженим. Однак ви не можете застосувати середньозважену інтерполяцію до нечислових функцій — її неможливо усереднити “dog” та “cat” наприклад. Натомість нечислові ознаки копіюються з будь-якої вихідної вибірки меншості відповідно до ваги усереднення.

Наприклад, розглянемо два зразки, A і B:

A = [1, 2, "dog", "carnivore"]
B = [0, 0, "cow", "herbivore"]

Припустимо, що вибірки інтерполюються з вагами 0.3 для зразка A та 0.7 для зразка B. Отже, числові поля усереднюються з цими вагами, щоб отримати 0.3 та 0.6 відповідно. Наступне поле заповнюється “dog” з ймовірністю 0.3 а “cow” з імовірністю 0.7. Аналогічно, наступний дорівнює “carnivore” з ймовірністю 0.3 а “herbivore” з імовірністю 0.7. Довільне копіювання виконується незалежно для кожної функції, тому зразок C нижче є можливим результатом:

C = [0.3, 0.6, "dog", "herbivore"]

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

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

Давайте тепер збалансуємо Набір даних для дорослих (також відомий як набір даних Census Income) за допомогою вбудованого перетворення SMOTE, наданого Data Wrangler. Цей багатовимірний набір даних включає шість числових і вісім рядкових ознак. Метою набору даних є завдання двійкової класифікації, щоб передбачити, чи перевищує дохід особи 50,000 XNUMX доларів США на рік чи ні на основі даних перепису.

Ви також можете побачити розподіл класів візуально, створивши гістограму за допомогою тип аналізу гістограми в Data Wrangler. Цільовий розподіл незбалансований і співвідношення записів с >50K до <=50K приблизно 1:4.

Ми можемо збалансувати ці дані за допомогою ПРИГРИТИ оператор знайдений під Дані балансу перетворення в Data Wrangler, виконавши такі дії:

  1. Вибирати income як цільовий стовпець.

Ми хочемо, щоб розподіл цієї колонки був більш збалансованим.

  1. Встановіть потрібний коефіцієнт на 0.66.

Таким чином, співвідношення між кількістю вибірок меншості та більшості становить 2:3 (замість вихідного співвідношення 1:4).

  1. Вибирати ПРИГРИТИ як перетворення для використання.
  2. Залиште значення за замовчуванням для Кількість сусідів усереднювати та нормалізувати чи ні.
  3. Вибирати попередній перегляд щоб отримати попередній перегляд застосованої трансформації та вибрати додавати щоб додати перетворення до потоку даних.

Тепер ми можемо створити нову гістограму, подібну до тієї, що ми робили раніше, щоб побачити перевирівняний розподіл класів. На наступному малюнку показано гістограму income після збалансування набору даних. Розподіл зразків тепер 3:2, як і було задумано.

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

Висновок

У цій публікації ми продемонстрували, як збалансувати незбалансовані двійкові дані класифікації за допомогою Data Wrangler. Data Wrangler пропонує три оператори балансування: випадкова недостатня вибірка, випадкова надмірна вибірка та SMOTE для відновлення балансу даних у ваших незбалансованих наборах даних. Усі три методи, запропоновані Data Wrangler, підтримують мультимодальні дані, включаючи числові та нечислові функції.

У якості наступних кроків ми рекомендуємо вам відтворити приклад із цієї публікації у своєму потоці даних Data Wrangler, щоб побачити, що ми обговорювали в дії. Якщо ви новачок у Data Wrangler або Студія SageMaker, відноситься до Почніть роботу з Data Wrangler. Якщо у вас є запитання щодо цієї публікації, додайте їх у розділі коментарів.


Про авторів

Йотам Елор є старшим науковим співробітником Amazon SageMaker. Його наукові інтереси пов’язані з машинним навчанням, зокрема для табличних даних.

Арунпрасат Шанкар є архітектором спеціалізованих рішень із штучного інтелекту та машинного навчання (AI / ML) з AWS, допомагаючи світовим клієнтам ефективно та ефективно масштабувати свої рішення в галузі ШІ в хмарі. У вільний час Арун із задоволенням дивиться науково-фантастичні фільми та слухає класичну музику.

Джерело: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

Часова мітка:

Більше від Блог машинного навчання AWS