Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler

Обработчик данных Amazon SageMaker — это специально созданный инструмент сбора и подготовки данных для машинного обучения (ML). Он позволяет использовать визуальный интерфейс для доступа к данным и выполнения исследовательского анализа данных (EDA) и разработки функций. Функция EDA поставляется со встроенными возможностями анализа данных для диаграмм (такими как точечная диаграмма или гистограмма) и возможностями экономящего время анализа модели, такими как важность функций, целевая утечка и объяснимость модели. Функция разработки функций имеет более 300 встроенных преобразований и может выполнять пользовательские преобразования с использованием среды выполнения Python, PySpark или Spark SQL.

Для пользовательских визуализаций и преобразований Data Wrangler теперь предоставляет примеры фрагментов кода для распространенных типов визуализаций и преобразований. В этом посте мы покажем, как использовать эти фрагменты кода для быстрого запуска EDA в Data Wrangler.

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

На момент написания этой статьи вы можете импортировать наборы данных в Data Wrangler из Простой сервис хранения Amazon (Амазон С3), Амазонка Афина, Амазонка Redshift, Databricks и Snowflake. В этом посте мы используем Amazon S3 для хранения Amazon 2014 года. набор данных отзывов. Ниже приведен пример набора данных:

{ "reviewerID": "A2SUAM1J3GNN3B", "asin": "0000013714", "reviewerName": "J. McDonald", "helpful": [2, 3], "reviewText": "I bought this for my husband who plays the piano. He is having a wonderful time playing these old hymns. The music is sometimes hard to read because we think the book was published for singing from more than playing from. Great purchase though!", "overall": 5.0, "summary": "Heavenly Highway Hymns", "unixReviewTime": 1252800000, "reviewTime": "09 13, 2009" } 

В этом посте мы выполняем EDA, используя три столбца:asin, reviewTimeкачества overall— которые сопоставляются с идентификатором продукта, датой времени проверки и общей оценкой обзора соответственно. Мы используем эти данные для визуализации динамики количества отзывов по месяцам и годам.

Использование примера фрагмента кода для EDA в Data Wrangler

Чтобы начать выполнение EDA в Data Wrangler, выполните следующие действия:

  1. Скачать Набор данных отзывов о цифровой музыке JSON и загрузите его на Amazon S3.
    Мы используем это как исходный набор данных для EDA.
  2. Откройте Студия Amazon SageMaker создайте новый поток Data Wrangler и импортируйте набор данных из Amazon S3.

    Этот набор данных имеет девять столбцов, но мы используем только три: asin, reviewTimeкачества overall. Нам нужно удалить остальные шесть столбцов.

  3. Создайте собственное преобразование и выберите Питон (PySpark).
  4. Расширьте Фрагменты примеров поиска , а затем выбрать Удалить все столбцы, кроме нескольких.
  5. Введите предоставленный фрагмент в свое пользовательское преобразование и следуйте инструкциям по изменению кода.
    # Specify the subset of columns to keep
    cols = ["asin", "reviewTime", "overall"] cols_to_drop = set(df.columns).difference(cols) df = df.drop(*cols_to_drop)

    Теперь, когда у нас есть все необходимые столбцы, давайте отфильтруем данные, чтобы оставить только отзывы за период с 2000 по 2020 год.

  6. Использовать Отметка времени фильтра вне диапазона фрагмент, чтобы удалить данные до 2000 года и после 2020 года:
    from pyspark.sql.functions import col
    from datetime import datetime # specify the start and the stop timestamp
    timestamp_start = datetime.strptime("2000-01-01 12:00:00", "%Y-%m-%d %H:%M:%S")
    timestamp_stop = datetime.strptime("2020-01-01 12:00:00", "%Y-%m-%d %H:%M:%S") df = df.filter(col("reviewTime").between(timestamp_start, timestamp_stop))

    Затем мы извлекаем год и месяц из столбца reviewTime.

  7. Использовать Дата/время преобразования.
  8. Что касается Извлечь столбцы, выберите год и месяц.

    Затем мы хотим агрегировать количество отзывов по годам и месяцам, которые мы создали на предыдущем шаге.

  9. Использовать Вычислять статистику в группах фрагмент:
    # Table is available as variable `df`
    from pyspark.sql.functions import sum, avg, max, min, mean, count # Provide the list of columns defining groups
    groupby_cols = ["reviewTime_year", "reviewTime_month"] # Specify the map of aggregate function to the list of colums
    # aggregates to use: sum, avg, max, min, mean, count
    aggregate_map = {count: ["overall"]} all_aggregates = []
    for a, cols in aggregate_map.items(): all_aggregates += [a(col) for col in cols] df = df.groupBy(groupby_cols).agg(*all_aggregates)

  10. Переименуйте агрегацию предыдущего шага из count(overall) в reviews_num Выбрав Управление столбцами и Переименовать столбец преобразования.
    Наконец, мы хотим создать тепловую карту, чтобы визуализировать распределение отзывов по годам и месяцам.
  11. На вкладке анализ выберите Пользовательская визуализация.
  12. Расширьте Поиск фрагмента , а затем выбрать Тепловая карта в раскрывающемся меню.
  13. Введите предоставленный фрагмент в пользовательскую визуализацию:
    # Table is available as variable `df`
    # Table is available as variable `df`
    import altair as alt # Takes first 1000 records of the Dataframe
    df = df.head(1000) chart = ( alt.Chart(df) .mark_rect() .encode( # Specify the column names for X and Y axis, # Both should have discrete values: ordinal (:O) or nominal (:N) x= "reviewTime_year:O", y="reviewTime_month:O", # Color can be both discrete (:O, :N) and quantitative (:Q) color="reviews_num:Q", ) .interactive()
    )

    Получаем следующую визуализацию.

    Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
    Если вы хотите еще больше улучшить тепловую карту, вы можете нарезать данные, чтобы показать только отзывы до 2011 года. Их трудно идентифицировать на тепловой карте, которую мы только что создали, из-за большого количества отзывов с 2012 года.

  14. Добавьте одну строку кода в пользовательскую визуализацию:
    # Table is available as variable `df`
    import altair as alt df = df[df.reviewTime_year < 2011]
    # Takes first 1000 records of the Dataframe
    df = df.head(1000) chart = ( alt.Chart(df) .mark_rect() .encode( # Specify the column names for X and Y axis, # Both should have discrete values: ordinal (:O) or nominal (:N) x= "reviewTime_year:O", y="reviewTime_month:O", # Color can be both discrete (:O, :N) and quantitative (:Q) color="reviews_num:Q", ) .interactive()
    )

Получаем следующую тепловую карту.

Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Теперь тепловая карта более наглядно отражает отзывы до 2011 года: мы можем наблюдать сезонные эффекты (конец года приносит больше покупок и, следовательно, больше отзывов) и можем идентифицировать аномальные месяцы, такие как октябрь 2003 года и март 2005 года. определить причину этих аномалий.

Заключение

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


Об авторах

Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Никита Ивкин — ученый-прикладник Amazon SageMaker Data Wrangler.

Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Хайдер Накви является архитектором решений в AWS. Он имеет обширный опыт разработки программного обеспечения и корпоративной архитектуры. Он фокусируется на том, чтобы помочь клиентам достичь бизнес-результатов с помощью AWS. Он базируется в Нью-Йорке.

Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Хариш Раджагопалан является старшим архитектором решений в Amazon Web Services. Хариш работает с корпоративными клиентами и помогает им в переходе к облаку.

Ускорьте подготовку данных с помощью фрагментов кода PySpark и Altair в Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джеймс Ву является старшим специалистом по AI/ML SA в AWS. Он работает с клиентами, чтобы ускорить их переход к облачным технологиям и ускорить реализацию их бизнес-ценности. В дополнение к этому Джеймс также увлечен разработкой и масштабированием крупных решений AI/ML в различных областях. До прихода в AWS он руководил многопрофильной группой инновационных технологий с инженерами по машинному обучению и разработчиками программного обеспечения в ведущей международной компании на рынке и в рекламной индустрии.

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

Больше от Машинное обучение AWS