Логотип Зефирнет

Интерактивный виджет подготовки данных для ноутбуков на базе Amazon SageMaker Data Wrangler

Дата:

Согласно опросу специалистов по данным, проведенному Anaconda в 2020 году, подготовка данных является одним из важнейших шагов в рабочих процессах машинного обучения (ML) и анализа данных и часто требует очень много времени для специалистов по данным. Специалисты по данным тратят около 66% своего времени на задачи по подготовке и анализу данных, включая загрузку (19%), очистку (26%) и визуализацию данных (21%).

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

Обработчик данных теперь предлагает встроенную возможность подготовки данных в Блокноты Amazon SageMaker Studio Это позволяет специалистам по машинному обучению визуально просматривать характеристики данных, выявлять проблемы и устранять проблемы с качеством данных — всего за несколько щелчков мыши прямо в блокнотах.

В этом посте мы покажем вам, как Обработчик данных виджет подготовки данных автоматически создает ключевые визуализации поверх фрейма данных Pandas, чтобы понять распределение данных, обнаружить проблемы с качеством данных и получить представление о поверхностных данных, таких как выбросы для каждой функции. Это помогает взаимодействовать с данными и находить идеи, которые могут остаться незамеченными при специальных запросах. Он также рекомендует исправления для исправления, позволяет применять преобразования данных в пользовательском интерфейсе и автоматически создавать код в ячейках записной книжки. Эта функция доступна во всех регионах, где доступен SageMaker Studio.

Обзор решения

Давайте подробнее разберемся, как этот новый виджет значительно упрощает исследование данных и обеспечивает беспроблемный опыт для улучшения общего опыта подготовки данных для инженеров по данным и практиков. Для нашего варианта использования мы используем модифицированную версию Набор данных Титаник, популярный набор данных в сообществе машинного обучения, который теперь добавлен в качестве образец набора данных чтобы вы могли быстро приступить к работе с SageMaker Data Wrangler. Исходный набор данных был получен из OpenML, и изменен, чтобы добавить синтетические проблемы с качеством данных от Amazon для этой демонстрации. Вы можете загрузить модифицированную версию набора данных из общедоступного пути S3. s3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv.

Предпосылки

Чтобы получить практический опыт работы со всеми функциями, описанными в этом посте, выполните следующие предварительные условия:

  1. Убедитесь, что у вас есть учетная запись AWS, безопасный доступ для входа в учетную запись через Консоль управления AWSкачества Управление идентификацией и доступом AWS (IAM) разрешения на использование Создатель мудреца Амазонки и Простой сервис хранения Amazon (Amazon S3).
  2. Используйте образец набора данных из общедоступного пути S3. s3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv или, альтернативно загрузить его в корзину S3 вашего счета.
  3. Подключитесь к домену SageMaker и получите доступ к Studio для использования блокнотов. Инструкции см. Подключение к домену Amazon SageMaker. Если вы используете существующую Studio, обновите ее до последняя версия студии.

Включить виджет исследования данных

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

Откройте Studio и создайте новую записную книжку Python 3. Убедитесь, что выбрали Наука о данных 3.0 изображение из изображений SageMaker, нажав Изменить среду .

изменить среду

Виджет исследования данных доступен на следующих изображениях. Список изображений SageMaker по умолчанию см. Доступные образы Amazon SageMaker.

  • Python 3 (наука о данных) с Python 3.7
  • Python 3 (наука о данных 2.0) с Python 3.8
  • Python 3 (наука о данных 3.0) с Python 3.10
  • Spark Analytics 1.0 и 2.0

Чтобы использовать этот виджет, импортируйте SageMaker_DataWrangler библиотека. Загрузите модифицированную версию набора данных Titanic из S3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv и прочитайте CSV с библиотекой Pandas:

import pandas as pd
import boto3
import io
import sagemaker_datawrangler s3 = boto3.client('s3')
obj = s3.get_object(Bucket='sagemaker-sample-files', Key='datasets/tabular/dirty-titanic/titanic-dirty-4.csv')
df = pd.read_csv(io.BytesIO(obj['Body'].read()))

виджет подготовки данных обработчика данных - пример блокнота

Визуализируйте данные

После загрузки данных во фрейм данных Pandas вы можете просмотреть данные, просто используя df or display(df). Наряду со списком строк виджет подготовки данных предоставляет аналитические сведения, визуализации и рекомендации по качеству данных. Вам не нужно писать какой-либо дополнительный код для создания информации о функциях и целях, информации о распространении или проверки качества данных рендеринга. Вы можете выбрать заголовок таблицы фрейма данных, чтобы просмотреть статистическую сводку, показывающую предупреждения о качестве данных, если таковые имеются.

визуализировать данные

В каждом столбце отображается гистограмма или гистограмма в зависимости от типа данных. По умолчанию виджет отбирает до 10,000 XNUMX наблюдений для получения значимой информации. Он также предоставляет возможность запуска анализа понимания всего набора данных.

Как показано на следующем снимке экрана, этот виджет определяет, содержит ли столбец категориальные или количественные данные.

категориальные или количественные данные

Для категорийных данных виджет создает гистограмму со всеми категориями. Например, на следующем снимке экрана столбец Sex определяет категории данных. Вы можете навести курсор на полосу (мужского в данном случае), чтобы просмотреть сведения об этих категориях, например, общее количество строк со значением male и его распределение в общем наборе визуализированных данных (64.07% в этом примере). Он также выделяет общий процент пропущенных значений другим цветом для категорийных данных. Для количественных данных, таких как ticket столбец, он показывает распределение вместе с процентом недопустимых значений.

Если вы хотите увидеть стандартную визуализацию Pandas в блокноте, вы можете выбрать Посмотреть таблицу панд и переключайтесь между виджетом и представлением Pandas, как показано на следующем снимке экрана.

Посмотреть таблицу панд

просмотреть таблицу обработчика данных

Чтобы получить более подробные сведения о данных в столбце, щелкните заголовок столбца, чтобы открыть боковую панель, посвященную столбцу. Здесь вы можете наблюдать две вкладки: Инсайты и Качество данных.

Статистика и качество данных

В следующих разделах мы рассмотрим эти два варианта более подробно.

Инсайты

Ассоциация Инсайты Вкладка содержит подробные сведения с описаниями для каждого столбца. В этом разделе приводится агрегированная статистика, такая как режим, количество уникальных элементов, соотношение и количество отсутствующих/недействительных значений и т. д., а также визуализируется распределение данных с помощью гистограммы или гистограммы. На следующих снимках экрана вы можете просмотреть данные и информацию о распределении, отображаемые с помощью понятных визуализаций, созданных для выбранного столбца. survived.

Качество данных

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

Чтобы изучить раздел качества данных, выберите заголовок столбца и на боковой панели выберите Качество данных вкладка Вы должны увидеть следующее в своей среде Studio.

вкладка качества данных

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

возраст

Когда вы выбираете Применить и экспортировать код, преобразование применяется к глубокой копии фрейма данных. После успешного применения преобразования таблица данных обновляется с выводами и визуализациями. Код преобразования создается после существующей ячейки в записной книжке. Вы можете запустить этот экспортированный код позже, чтобы применить преобразование к своим наборам данных и расширить его в соответствии с вашими потребностями. Вы можете настроить преобразование, напрямую изменив сгенерированный код. Если мы применим Пропал без вести в столбце «Возраст», к набору данных применяется следующий код преобразования, который также генерируется в ячейке под виджетом:

#Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) #Code to Drop missing for column: age to resolve warning: Missing values output_df = output_df[output_df['age'].notnull()]

Ниже приведен еще один пример фрагмента кода для Заменить медианой:

#Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) #Code to Replace with median for column: age to resolve warning: Missing values output_df['age']=output_df['age'].fillna(output_df['age'].median(skipna=True))

Теперь давайте посмотрим на возможности целевого понимания виджета подготовки данных. Предположим, вы хотите использовать survived Функция, позволяющая предсказать, выживет ли пассажир. Выбрать survived заголовок столбца. На боковой панели выберите Выбрать в качестве целевого столбца. Идеальное распределение данных для survived функция должна иметь только два класса: да (1) или нет (0), который помогает классифицировать шансы на выживание при крушении Титаника. Однако из-за несоответствия данных в выбранном целевом столбце сохранившаяся функция была 0, 1, ?, unknownкачества yes.

выбрать в качестве целевого столбца

Выберите тип проблемы на основе выбранного целевого столбца, который может быть либо классификация or Регрессия. Для выжившего столбца тип задачи — классификация. Выбирать Run для создания аналитических данных для целевого столбца.

выжил

Виджет подготовки данных содержит сведения о целевом столбце с рекомендациями и примерами объяснений для решения проблем с качеством данных целевого столбца. Он также автоматически выделяет аномальные данные в столбце.

целевая аналитика столбца с рекомендациями

Выбираем рекомендуемое преобразование Удалить редкие целевые значения, потому что для редких целевых значений меньше наблюдений.

Отбросить редкое целевое значение

Выбранное преобразование применяется к фрейму данных Pandas, а необычные целевые значения удаляются из сохранившегося столбца. См. следующий код:

# Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) # Code to Drop rare target values for column: survived to resolve warning: Too few instances per class rare_target_labels_to_drop = ['?', 'unknown', 'yes']
output_df = output_df[~output_df['survived'].isin(rare_target_labels_to_drop)]

Результаты примененного преобразования немедленно видны во фрейме данных. Чтобы отслеживать действия по подготовке данных, применяемые с помощью виджета подготовки данных, преобразованный код также создается в следующей ячейке записной книжки.

Заключение

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

Если вы не знакомы с SageMaker Data Wrangler или Studio, см. Начните работу с SageMaker Data Wrangler. Если у вас есть какие-либо вопросы, связанные с этим постом, пожалуйста, добавьте их в раздел комментариев.


Об авторах

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

Иша Дуа работает старшим архитектором решений в районе залива Сан-Франциско. Она помогает корпоративным клиентам AWS расти, понимая их цели и проблемы, а также помогая им спроектировать свои приложения в облачной манере, обеспечив при этом их отказоустойчивость и масштабируемость. Она увлечена технологиями машинного обучения и экологической устойчивостью.

Харихаран Суреш является старшим архитектором решений в AWS. Он увлечен базами данных, машинным обучением и разработкой инновационных решений. До прихода в AWS Харихаран был архитектором продуктов, специалистом по внедрению основных банковских услуг и разработчиком и более 11 лет работал с организациями BFSI. Помимо технологий, он увлекается парапланеризмом и ездой на велосипеде.

Дэни Митчелл является специалистом по архитектуре решений AI/ML в Amazon Web Services. Он занимается примерами использования Computer Vision и помогает клиентам в регионе EMEA ускорить переход к машинному обучению.

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?