Сбалансируйте свои данные для машинного обучения с помощью Amazon SageMaker Data Wrangler

Исходный узел: 1600102

Обработчик данных Amazon SageMaker это новая возможность Создатель мудреца Амазонки Это позволяет специалистам по данным и инженерам быстрее подготавливать данные для приложений машинного обучения (ML) с помощью визуального интерфейса. Он содержит более 300 встроенных преобразований данных, поэтому вы можете быстро нормализовать, преобразовывать и комбинировать функции без необходимости написания кода.

Сегодня мы рады объявить о новых преобразованиях, которые позволяют легко и эффективно сбалансировать наборы данных для обучения модели машинного обучения. Мы демонстрируем, как эти преобразования работают в этом посте.

Новые операторы балансировки

Недавно объявленные операторы балансировки сгруппированы в Данные баланса тип трансформации в ДОБАВИТЬ ТРАНСФОРМУ панель.

В настоящее время операторы преобразования поддерживают только задачи бинарной классификации. В задачах бинарной классификации перед классификатором ставится задача отнести каждую выборку к одному из двух классов. Когда количество выборок в мажоритарном (большем) классе значительно превышает количество выборок в меньшинстве (меньшем) классе, набор данных считается несбалансированным. Этот перекос является сложной задачей для алгоритмов и классификаторов ML, потому что процесс обучения имеет тенденцию быть смещенным к классу большинства.

Для решения этой проблемы были предложены схемы балансировки, которые дополняют данные, чтобы сделать их более сбалансированными перед обучением классификатора. Простейшими методами балансировки являются либо избыточная выборка класса меньшинства путем дублирования выборок меньшинства, либо недостаточная выборка класса большинства путем удаления выборок большинства. Идея добавления выборок синтетического меньшинства к табличным данным была впервые предложена в методе избыточной выборки синтетического меньшинства (SMOTE), где выборки синтетического меньшинства создаются путем интерполяции пар исходных точек меньшинства. SMOTE и другие схемы балансировки были тщательно изучены эмпирически и показали, что они повышают эффективность прогнозирования в различных сценариях, согласно публикации. БИТЬ или не БИТЬ.

Data Wrangler теперь поддерживает следующие операторы балансировки как часть Данные баланса преобразовать:

  • Случайный передискретизатор – Случайное дублирование образцов меньшинства
  • Случайный субсэмплер - Случайным образом удалить большинство выборок
  • Пронзила – Создание синтетических выборок меньшинств путем интерполяции реальных выборок меньшинств.

Теперь давайте подробно обсудим различные операторы балансировки.

Случайная передискретизация

Случайная передискретизация включает в себя выборку случайных примеров из класса меньшинства с заменой и дополнение обучающих данных несколькими копиями этого экземпляра. Поэтому возможно, что один экземпляр может быть выбран несколько раз. С случайный избыточная выборка преобразования, Data Wrangler автоматически выполняет избыточную выборку миноритарного класса, дублируя выборки меньшинства в вашем наборе данных.

Случайная недостаточная выборка

Случайная недостаточная выборка противоположна случайной передискретизации. Этот метод стремится случайным образом выбрать и удалить выборки из мажоритарного класса, тем самым уменьшая количество примеров в мажоритарном классе в преобразованных данных. случайный недостаточная выборка Преобразование типа позволяет Data Wrangler автоматически уменьшать выборку большинства классов за вас, удаляя выборки большинства в вашем наборе данных.

Пронзила

В SMOTE к данным добавляются синтетические выборки меньшинства для достижения желаемого соотношения между выборками большинства и меньшинства. Синтетические выборки генерируются путем интерполяции пар исходных точек меньшинства. Пронзила 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, помогая клиентам во всем мире эффективно масштабировать свои решения AI в облаке. В свободное время Арун любит смотреть научно-фантастические фильмы и слушать классическую музыку.

Источник: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

Отметка времени:

Больше от Блог машинного обучения AWS