Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler

Gestore di dati di Amazon SageMaker è uno strumento di preparazione e aggregazione dei dati appositamente creato per l'apprendimento automatico (ML). Consente di utilizzare un'interfaccia visiva per accedere ai dati ed eseguire analisi dei dati esplorativi (EDA) e ingegneria delle funzionalità. La funzione EDA viene fornita con funzionalità di analisi dei dati integrate per grafici (come grafico a dispersione o istogramma) e funzionalità di analisi del modello che consentono di risparmiare tempo, come l'importanza delle funzionalità, la dispersione del target e la spiegazione del modello. La funzionalità di progettazione delle funzionalità ha oltre 300 trasformazioni integrate e può eseguire trasformazioni personalizzate utilizzando il runtime Python, PySpark o Spark SQL.

Per visualizzazioni e trasformazioni personalizzate, Data Wrangler ora fornisce frammenti di codice di esempio per tipi comuni di visualizzazioni e trasformazioni. In questo post, dimostriamo come utilizzare questi frammenti di codice per avviare rapidamente il tuo EDA in Data Wrangler.

Panoramica della soluzione

Al momento della stesura di questo documento, puoi importare set di dati in Data Wrangler da Servizio di archiviazione semplice Amazon (Amazon S3), Amazzone Atena, Amazon RedShift, Databricks e Fiocco di neve. Per questo post, utilizziamo Amazon S3 per archiviare l'Amazon 2014 rivede il set di dati. Quello che segue è un esempio del set di dati:

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

In questo post, eseguiamo EDA utilizzando tre colonne:asin, reviewTimee overall—che corrispondono rispettivamente all'ID prodotto, alla data dell'ora della recensione e al punteggio complessivo della recensione. Utilizziamo questi dati per visualizzare le dinamiche per il numero di recensioni in mesi e anni.

Utilizzo di un frammento di codice di esempio per EDA in Data Wrangler

Per iniziare a eseguire l'EDA in Data Wrangler, completare i seguenti passaggi:

  1. Scarica la Set di dati delle recensioni di musica digitale JSON e caricalo su Amazon S3.
    Lo usiamo come set di dati grezzi per l'EDA.
  2. Apri Amazon Sage Maker Studio e crea un nuovo flusso di Data Wrangler e importa il set di dati da Amazon S3.

    Questo set di dati ha nove colonne, ma ne utilizziamo solo tre: asin, reviewTimee overall. Dobbiamo eliminare le altre sei colonne.

  3. Crea una trasformazione personalizzata e scegli Pitone (PySpark).
  4. Espandere Cerca frammenti di esempio e scegli Rilascia tutte le colonne tranne diverse.
  5. Inserisci lo snippet fornito nella tua trasformazione personalizzata e segui le istruzioni per modificare il codice.
    # 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)

    Ora che abbiamo tutte le colonne di cui abbiamo bisogno, filtriamo i dati per mantenere solo le recensioni tra il 2000 e il 2020.

  6. Usa il Filtra timestamp al di fuori dell'intervallo snippet per eliminare i dati prima del 2000 e dopo il 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))

    Successivamente, estraiamo l'anno e il mese dalla colonna reviewTime.

  7. Usa il Metti in evidenza data/ora trasformare.
  8. Nel Estrai colonnescegli anno ed mese.

    Successivamente, vogliamo aggregare il numero di recensioni per anno e mese che abbiamo creato nel passaggio precedente.

  9. Usa il Calcola le statistiche in gruppi frammento:
    # 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. Rinominare l'aggregazione del passaggio precedente da count(overall) a reviews_num Scegliendo Gestisci colonne e la Rinomina colonna trasformare.
    Infine, vogliamo creare una heatmap per visualizzare la distribuzione delle recensioni per anno e per mese.
  11. Nella scheda analisi, scegli Visualizzazione personalizzata.
  12. Espandere Cerca frammento e scegli Heatmap nel menu a discesa.
  13. Inserisci lo snippet fornito nella visualizzazione personalizzata:
    # 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()
    )

    Otteniamo la seguente visualizzazione.

    Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
    Se desideri migliorare ulteriormente la mappa di calore, puoi suddividere i dati per mostrare solo le recensioni precedenti al 2011. Questi sono difficili da identificare nella mappa di calore che abbiamo appena creato a causa dei grandi volumi di recensioni dal 2012.

  14. Aggiungi una riga di codice alla tua visualizzazione personalizzata:
    # 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()
    )

Otteniamo la seguente mappa di calore.

Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Ora la heatmap rispecchia in modo più visibile le recensioni precedenti al 2011: possiamo osservare gli effetti stagionali (la fine dell'anno porta più acquisti e quindi più recensioni) e possiamo identificare mesi anomali, come ottobre 2003 e marzo 2005. Vale la pena approfondire per determinare la causa di tali anomalie.

Conclusione

Data Wrangler è uno strumento di preparazione e aggregazione dei dati appositamente creato per ML. In questo post, abbiamo dimostrato come eseguire EDA e trasformare rapidamente i tuoi dati utilizzando frammenti di codice forniti da Data Wrangler. Devi solo trovare uno snippet, inserire il codice e regolare i parametri in modo che corrispondano al tuo set di dati. Puoi continuare a ripetere lo script per creare visualizzazioni e trasformazioni più complesse.
Per ulteriori informazioni su Data Wrangler, fare riferimento a Creare e utilizzare un flusso di Data Wrangler.


Informazioni sugli autori

Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Nikita Ivkin è uno scienziato applicato, Amazon SageMaker Data Wrangler.

Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Haider Naqvi è un Solutions Architect presso AWS. Ha una vasta esperienza nello sviluppo di software e nell'architettura aziendale. Si concentra sul consentire ai clienti di ottenere risultati di business con AWS. Ha sede a New York.

Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Harish Rajagopalan è Senior Solutions Architect presso Amazon Web Services. Harish lavora con i clienti aziendali e li aiuta nel loro percorso verso il cloud.

Prepara i dati più velocemente con gli snippet di codice PySpark e Altair in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Giacomo Wu è un Senior AI/ML Specialist SA presso AWS. Collabora con i clienti per accelerare il loro percorso verso il cloud e accelerare la realizzazione del valore aziendale. In aggiunta a ciò, James è anche appassionato di sviluppo e scalabilità di soluzioni AI/ML di grandi dimensioni in vari domini. Prima di entrare in AWS, ha guidato un team tecnologico di innovazione multidisciplinare con ingegneri ML e sviluppatori software per un'azienda leader a livello mondiale nel mercato e nel settore pubblicitario.

Timestamp:

Di più da Apprendimento automatico di AWS