Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler

Gerenciador de dados do Amazon SageMaker é uma ferramenta de agregação e preparação de dados criada especificamente para aprendizado de máquina (ML). Ele permite que você use uma interface visual para acessar dados e realizar análise exploratória de dados (EDA) e engenharia de recursos. O recurso EDA vem com recursos integrados de análise de dados para gráficos (como gráfico de dispersão ou histograma) e recursos de análise de modelo que economizam tempo, como importância do recurso, vazamento de destino e explicabilidade do modelo. O recurso de engenharia de recursos tem mais de 300 transformações internas e pode realizar transformações personalizadas usando o tempo de execução Python, PySpark ou Spark SQL.

Para visualizações e transformações personalizadas, o Data Wrangler agora fornece trechos de código de exemplo para tipos comuns de visualizações e transformações. Neste post, demonstramos como usar esses trechos de código para iniciar rapidamente seu EDA no Data Wrangler.

Visão geral da solução

No momento da redação deste artigo, você pode importar conjuntos de dados para o Data Wrangler de Serviço de armazenamento simples da Amazon (Amazon S3), Amazona atena, Amazon RedShift, Databricks e Floco de Neve. Para este post, usamos o Amazon S3 para armazenar o Amazon 2014 analisa o conjunto de dados. A seguir, uma amostra do conjunto de dados:

{ "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" } 

Neste post, realizamos EDA usando três colunas—asin, reviewTime e overall— que mapeiam para o ID do produto, a data da revisão e a pontuação geral da revisão, respectivamente. Usamos esses dados para visualizar a dinâmica do número de revisões em meses e anos.

Usando exemplo de trecho de código para EDA no Data Wrangler

Para começar a executar o EDA no Data Wrangler, conclua as etapas a seguir:

  1. Faça o download do Conjunto de dados de resenhas de música digital JSON e carregue-o no Amazon S3.
    Usamos isso como o conjunto de dados brutos para o EDA.
  2. Abra Estúdio Amazon SageMaker e crie um novo fluxo do Data Wrangler e importe o conjunto de dados do Amazon S3.

    Esse conjunto de dados tem nove colunas, mas usamos apenas três: asin, reviewTime e overall. Precisamos eliminar as outras seis colunas.

  3. Crie uma transformação personalizada e escolha Python (PySpark).
  4. Expandir Pesquisar snippets de exemplo e escolha Solte todas as colunas, exceto várias.
  5. Insira o snippet fornecido em sua transformação personalizada e siga as instruções para modificar o código.
    # 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)

    Agora que temos todas as colunas de que precisamos, vamos filtrar os dados para manter apenas as revisões entre 2000 e 2020.

  6. Use o Filtrar carimbo de data/hora fora do intervalo snippet para descartar os dados antes do ano 2000 e depois de 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))

    Em seguida, extraímos o ano e o mês da coluna reviewTime.

  7. Use o Destaque data/hora transformar.
  8. Escolha Extrair colunas, escolha ano e mês.

    Em seguida, queremos agregar o número de avaliações por ano e mês que criamos na etapa anterior.

  9. Use o Calcular estatísticas em grupos trecho:
    # 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. Renomeie a agregação da etapa anterior de count(overall) para reviews_num escolhendo Gerenciar colunas e os votos de Renomear coluna transformar.
    Por fim, queremos criar um mapa de calor para visualizar a distribuição das avaliações por ano e por mês.
  11. Na guia análise, escolha Visualização personalizada.
  12. Expandir Pesquisar trecho e escolha Heatmap no menu suspenso.
  13. Insira o snippet fornecido em sua visualização personalizada:
    # 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()
    )

    Obtemos a seguinte visualização.

    Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
    Se quiser aprimorar ainda mais o mapa de calor, você pode dividir os dados para mostrar apenas as avaliações anteriores a 2011. Elas são difíceis de identificar no mapa de calor que acabamos de criar devido ao grande volume de avaliações desde 2012.

  14. Adicione uma linha de código à sua visualização personalizada:
    # 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()
    )

Obtemos o seguinte mapa de calor.

Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Agora o mapa de calor reflete as avaliações anteriores a 2011 de forma mais visível: podemos observar os efeitos sazonais (o final do ano traz mais compras e, portanto, mais avaliações) e identificar meses anômalos, como outubro de 2003 e março de 2005. Vale a pena investigar mais determinar a causa dessas anomalias.

Conclusão

O Data Wrangler é uma ferramenta de agregação e preparação de dados criada especificamente para ML. Neste post, demonstramos como realizar EDA e transformar seus dados rapidamente usando trechos de código fornecidos pelo Data Wrangler. Você só precisa encontrar um snippet, inserir o código e ajustar os parâmetros para corresponder ao seu conjunto de dados. Você pode continuar a iterar em seu script para criar visualizações e transformações mais complexas.
Para saber mais sobre o Data Wrangler, consulte Criar e usar um fluxo do Data Wrangler.


Sobre os autores

Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Nikita Ivkin é um cientista aplicado, Amazon SageMaker Data Wrangler.

Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Haider Naqvi é arquiteto de soluções na AWS. Ele tem uma extensa experiência em desenvolvimento de software e arquitetura corporativa. Ele se concentra em permitir que os clientes obtenham resultados de negócios com a AWS. Ele é baseado em Nova York.

Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Harish Rajagopalan é arquiteto de soluções sênior da Amazon Web Services. A Harish trabalha com clientes corporativos e os ajuda em sua jornada na nuvem.

Prepare dados mais rapidamente com snippets de código PySpark e Altair no Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.James Wu é um especialista sênior em AI/ML SA na AWS. Ele trabalha com os clientes para acelerar sua jornada na nuvem e acelerar a realização do valor comercial. Além disso, James também é apaixonado por desenvolver e dimensionar grandes soluções de IA/ML em vários domínios. Antes de ingressar na AWS, ele liderou uma equipe de tecnologia de inovação multidisciplinar com engenheiros de ML e desenvolvedores de software para uma das principais empresas globais do mercado e do setor de publicidade.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS