Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler

Wrangler de datos de Amazon SageMaker es una herramienta de preparación y agregación de datos especialmente diseñada para el aprendizaje automático (ML). Le permite utilizar una interfaz visual para acceder a los datos y realizar análisis exploratorios de datos (EDA) e ingeniería de características. La función EDA viene con capacidades de análisis de datos integradas para gráficos (como diagramas de dispersión o histogramas) y capacidades de análisis de modelos que ahorran tiempo, como la importancia de las características, la fuga de objetivos y la explicabilidad del modelo. La capacidad de ingeniería de funciones tiene más de 300 transformaciones integradas y puede realizar transformaciones personalizadas utilizando el tiempo de ejecución de Python, PySpark o Spark SQL.

Para visualizaciones y transformaciones personalizadas, Data Wrangler ahora proporciona fragmentos de código de ejemplo para tipos comunes de visualizaciones y transformaciones. En esta publicación, demostramos cómo usar estos fragmentos de código para iniciar rápidamente su EDA en Data Wrangler.

Resumen de la solución

En el momento de escribir este artículo, puede importar conjuntos de datos a Data Wrangler desde Servicio de almacenamiento simple de Amazon (Amazon S3), Atenea amazónica, Desplazamiento al rojo de Amazon, Databricks y Snowflake. Para esta publicación, usamos Amazon S3 para almacenar el Amazon 2014 revisa el conjunto de datos. La siguiente es una muestra del conjunto de datos:

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

En esta publicación, realizamos EDA utilizando tres columnas:asin, reviewTimey overall, que se asignan al ID del producto, la fecha de la revisión y la puntuación general de la revisión, respectivamente. Usamos estos datos para visualizar la dinámica de la cantidad de revisiones a lo largo de meses y años.

Usando un fragmento de código de ejemplo para EDA en Data Wrangler

Para comenzar a realizar EDA en Data Wrangler, complete los siguientes pasos:

  1. Descargue nuestra Conjunto de datos de reseñas de música digital JSON y cárguelo en Amazon S3.
    Usamos esto como el conjunto de datos sin procesar para la EDA.
  2. Abierto Estudio Amazon SageMaker y cree un nuevo flujo de Data Wrangler e importe el conjunto de datos de Amazon S3.

    Este conjunto de datos tiene nueve columnas, pero solo usamos tres: asin, reviewTimey overall. Necesitamos eliminar las otras seis columnas.

  3. Cree una transformación personalizada y elija Pitón (PySpark).
  4. Expandir Buscar fragmentos de ejemplo y elige Eliminar todas las columnas excepto varias.
  5. Ingrese el fragmento proporcionado en su transformación personalizada y siga las instrucciones para modificar el 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)

    Ahora que tenemos todas las columnas que necesitamos, filtremos los datos para mantener solo las revisiones entre 2000 y 2020.

  6. Ingrese al Filtrar marca de tiempo fuera del intervalo fragmento para colocar los datos antes del año 2000 y después 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))

    A continuación, extraemos el año y el mes de la columna reviewTime.

  7. Ingrese al Destacar fecha/hora transformar.
  8. Extraer columnas, escoger año y mes.

    A continuación, queremos agregar la cantidad de reseñas por año y mes que creamos en el paso anterior.

  9. Ingrese al Calcular estadísticas en grupos retazo:
    # 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. Renombrar la agregación del paso anterior de count(overall) a reviews_num por elección Administrar columnas y del Cambiar el nombre de la columna transformar.
    Finalmente, queremos crear un mapa de calor para visualizar la distribución de reseñas por año y por mes.
  11. En la pestaña de análisis, elija visualización personalizada.
  12. Expandir Buscar fragmento y elige Mapa de calor en el menú desplegable.
  13. Ingrese el fragmento provisto en su visualización 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()
    )

    Obtenemos la siguiente visualización.

    Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
    Si desea mejorar aún más el mapa de calor, puede dividir los datos para mostrar solo las reseñas anteriores a 2011. Son difíciles de identificar en el mapa de calor que acabamos de crear debido a la gran cantidad de reseñas desde 2012.

  14. Agregue una línea de código a su visualización 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()
    )

Obtenemos el siguiente mapa de calor.

Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Ahora el mapa de calor refleja las revisiones anteriores a 2011 de manera más visible: podemos observar los efectos estacionales (el final del año trae más compras y, por lo tanto, más revisiones) y podemos identificar meses anómalos, como octubre de 2003 y marzo de 2005. Vale la pena investigar más. para determinar la causa de dichas anomalías.

Conclusión

Data Wrangler es una herramienta de preparación y agregación de datos especialmente diseñada para ML. En esta publicación, demostramos cómo realizar EDA y transformar sus datos rápidamente utilizando fragmentos de código proporcionados por Data Wrangler. Solo necesita encontrar un fragmento, ingresar el código y ajustar los parámetros para que coincidan con su conjunto de datos. Puede continuar iterando en su secuencia de comandos para crear visualizaciones y transformaciones más complejas.
Para obtener más información sobre Data Wrangler, consulte Crear y usar un flujo de Wrangler de datos.


Acerca de los autores

Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Nikita Ivkina es un científico aplicado, Amazon SageMaker Data Wrangler.

Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.haider naqvi es arquitecto de soluciones en AWS. Tiene una amplia experiencia en desarrollo de software y arquitectura empresarial. Se enfoca en permitir que los clientes logren resultados comerciales con AWS. Tiene su sede en Nueva York.

Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Harish Rajagopalan es Arquitecto de Soluciones Sénior en Amazon Web Services. Harish trabaja con clientes empresariales y los ayuda con su viaje a la nube.

Prepare datos más rápido con fragmentos de código PySpark y Altair en Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.James Wu es un especialista sénior en AI/ML SA en AWS. Trabaja con los clientes para acelerar su viaje a la nube y acelerar la realización de su valor empresarial. Además de eso, a James también le apasiona desarrollar y escalar grandes soluciones de IA/ML en varios dominios. Antes de unirse a AWS, lideró un equipo de tecnología de innovación multidisciplinar con ingenieros de aprendizaje automático y desarrolladores de software para una de las principales empresas mundiales en el mercado y la industria de la publicidad.

Sello de tiempo:

Mas de Aprendizaje automático de AWS