Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler

Gestionnaire de données Amazon SageMaker est un outil d'agrégation et de préparation de données spécialement conçu pour l'apprentissage automatique (ML). Il vous permet d'utiliser une interface visuelle pour accéder aux données et effectuer une analyse exploratoire des données (EDA) et une ingénierie des fonctionnalités. La fonction EDA est livrée avec des capacités d'analyse de données intégrées pour les graphiques (tels que le nuage de points ou l'histogramme) et des capacités d'analyse de modèle permettant de gagner du temps telles que l'importance des caractéristiques, la fuite cible et l'explicabilité du modèle. La capacité d'ingénierie des fonctionnalités comprend plus de 300 transformations intégrées et peut effectuer des transformations personnalisées à l'aide de l'environnement d'exécution Python, PySpark ou Spark SQL.

Pour les visualisations et les transformations personnalisées, Data Wrangler fournit désormais des exemples d'extraits de code pour les types courants de visualisations et de transformations. Dans cet article, nous montrons comment utiliser ces extraits de code pour démarrer rapidement votre EDA dans Data Wrangler.

Vue d'ensemble de la solution

Au moment d'écrire ces lignes, vous pouvez importer des ensembles de données dans Data Wrangler à partir de Service de stockage simple Amazon (Amazon S3), Amazone Athéna, Redshift d'Amazon, Databricks et Snowflake. Pour cet article, nous utilisons Amazon S3 pour stocker l'Amazon 2014 examine l'ensemble de données. Voici un exemple de l'ensemble de données :

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

Dans cet article, nous effectuons l'EDA en utilisant trois colonnes—asin, reviewTimeet overall– qui correspondent respectivement à l'ID du produit, à la date de révision et à la note globale de la révision. Nous utilisons ces données pour visualiser la dynamique du nombre d'avis au fil des mois et des années.

Utilisation d'un exemple d'extrait de code pour EDA dans Data Wrangler

Pour commencer à exécuter EDA dans Data Wrangler, procédez comme suit :

  1. Télécharger Ensemble de données sur les avis sur la musique numérique JSON et chargez-le sur Amazon S3.
    Nous l'utilisons comme ensemble de données brutes pour l'EDA.
  2. Ouvert Amazon SageMakerStudio et créez un nouveau flux Data Wrangler et importez l'ensemble de données depuis Amazon S3.

    Cet ensemble de données comporte neuf colonnes, mais nous n'en utilisons que trois : asin, reviewTimeet overall. Nous devons supprimer les six autres colonnes.

  3. Créez une transformation personnalisée et choisissez Python (PySpark).
  4. Développer vous Rechercher des extraits d'exemples et choisissez Supprimer toutes les colonnes sauf plusieurs.
  5. Entrez l'extrait de code fourni dans votre transformation personnalisée et suivez les instructions pour modifier le code.
    # 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)

    Maintenant que nous avons toutes les colonnes dont nous avons besoin, filtrons les données pour ne conserver que les avis entre 2000 et 2020.

  6. Utilisez l'option Filtrer l'horodatage en dehors de la plage extrait pour supprimer les données avant l'an 2000 et après 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))

    Ensuite, nous extrayons l'année et le mois de la colonne reviewTime.

  7. Utilisez l'option Caractériser la date/l'heure transformer.
  8. Pour Extraire les colonnes, choisissez an ainsi que mois.

    Ensuite, nous voulons agréger le nombre d'avis par année et par mois que nous avons créés à l'étape précédente.

  9. Utilisez l'option Calculer des statistiques en groupes fragment:
    # 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. Renommer l'agrégation de l'étape précédente de count(overall) à reviews_num en choisissant Gérer les colonnes et par Renommer la colonne transformer.
    Enfin, nous voulons créer une carte thermique pour visualiser la répartition des avis par année et par mois.
  11. Dans l'onglet Analyse, choisissez Visualisation personnalisée.
  12. Développer vous Rechercher un extrait et choisissez Heatmap dans le menu déroulant.
  13. Saisissez l'extrait fourni dans votre visualisation personnalisée :
    # 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()
    )

    On obtient la visualisation suivante.

    Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
    Si vous souhaitez améliorer davantage la carte thermique, vous pouvez découper les données pour n'afficher que les avis antérieurs à 2011. Ceux-ci sont difficiles à identifier dans la carte thermique que nous venons de créer en raison du grand nombre d'avis depuis 2012.

  14. Ajoutez une ligne de code à votre visualisation personnalisée :
    # 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()
    )

Nous obtenons la carte thermique suivante.

Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Désormais, la carte thermique reflète plus visiblement les avis antérieurs à 2011 : nous pouvons observer les effets saisonniers (la fin de l'année apporte plus d'achats et donc plus d'avis) et pouvons identifier les mois anormaux, comme octobre 2003 et mars 2005. déterminer la cause de ces anomalies.

Conclusion

Data Wrangler est un outil d'agrégation et de préparation de données spécialement conçu pour le ML. Dans cet article, nous avons montré comment effectuer EDA et transformer rapidement vos données à l'aide d'extraits de code fournis par Data Wrangler. Il vous suffit de trouver un extrait, d'entrer le code et d'ajuster les paramètres pour qu'ils correspondent à votre ensemble de données. Vous pouvez continuer à itérer sur votre script pour créer des visualisations et des transformations plus complexes.
Pour en savoir plus sur Data Wrangler, consultez Créer et utiliser un flux Data Wrangler.


À propos des auteurs

Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Nikita Ivkine est un scientifique appliqué, Amazon SageMaker Data Wrangler.

Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Haider Naqvi est architecte de solutions chez AWS. Il possède une vaste expérience en développement de logiciels et en architecture d'entreprise. Il s'attache à permettre aux clients d'obtenir des résultats commerciaux avec AWS. Il est basé à New York.

Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Harish Rajagopalan est architecte de solutions senior chez Amazon Web Services. Harish travaille avec des entreprises clientes et les aide dans leur parcours vers le cloud.

Préparez les données plus rapidement avec les extraits de code PySpark et Altair dans Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.James Wu est un spécialiste senior AI/ML SA chez AWS. Il travaille avec les clients pour accélérer leur parcours vers le cloud et accélérer la réalisation de leur valeur commerciale. En plus de cela, James est également passionné par le développement et la mise à l'échelle de grandes solutions d'IA/ML dans divers domaines. Avant de rejoindre AWS, il a dirigé une équipe technologique d'innovation multidisciplinaire avec des ingénieurs ML et des développeurs de logiciels pour une grande entreprise mondiale du marché et de l'industrie de la publicité.

Horodatage:

Plus de Apprentissage automatique AWS