Analizzare i dati utilizzando i notebook

Questo tutorial si concentra su come utilizzare Jupyter Notebooks, integrato in Data Science Workspace, per accedere, esplorare e visualizzare i tuoi dati. Al termine di questa esercitazione, avrai acquisito una conoscenza di alcune delle funzioni offerte da Jupyter Notebooks per comprendere meglio i tuoi dati.

Sono introdotti i seguenti concetti:

  • JupyterLab: JupyterLab è l'interfaccia Web di nuova generazione per Project Jupyter ed è strettamente integrata in Adobe Experience Platform.
  • Batch: I set di dati sono costituiti da batch. Un batch è un insieme di dati raccolti in un periodo di tempo ed elaborati insieme come una singola unità. Quando i dati vengono aggiunti a un set di dati vengono creati nuovi batch.
  • SDK per l'accesso ai dati (obsoleto): L'SDK per l'accesso ai dati è ora obsoleto. Utilizzare la guida di Platform SDK.

Esplorare i notebook in Data Science Workspace

In questa sezione vengono esaminati i dati precedentemente acquisiti nello schema di vendita al dettaglio.

Data Science Workspace consente agli utenti di creare Jupyter Notebooks tramite la piattaforma JupyterLab, dove possono creare e modificare flussi di lavoro di apprendimento automatico. JupyterLab è uno strumento di collaborazione server-client che consente agli utenti di modificare i documenti del blocco appunti tramite un browser Web. Questi blocchi appunti possono contenere sia codice eseguibile che elementi in formato Rich Text. A tale scopo, utilizzeremo Markdown per la descrizione dell'analisi e il codice eseguibile Python per eseguire l'esplorazione e l'analisi dei dati.

Scegli il tuo workspace

All'avvio di JupyterLab, viene presentata un'interfaccia basata sul Web per Jupyter Notebooks. A seconda del tipo di notebook scelto, verrà avviato un kernel corrispondente.

Quando confrontiamo l’ambiente da utilizzare, dobbiamo tenere conto delle limitazioni di ciascun servizio. Ad esempio, se utilizziamo la libreria pandas con Python, come utente normale il limite di RAM è di 2 GB. Anche in qualità di utente avanzato, il limite massimo è di 20 GB di RAM. Per i calcoli di dimensioni maggiori, è consigliabile utilizzare Spark, che offre 1,5 TB condivisi con tutte le istanze del blocco appunti.

Per impostazione predefinita, la ricetta Tensorflow funziona in un cluster GPU e Python viene eseguito all’interno di un cluster CPU.

Crea un nuovo blocco appunti

Nell'interfaccia utente di Adobe Experience Platform, seleziona Data Science nel menu principale per passare a Data Science Workspace. Da questa pagina, selezionare JupyterLab per aprire il modulo di avvio JupyterLab. Dovresti visualizzare una pagina simile a questa.

Nel nostro tutorial, utilizzeremo Python 3 nel Jupyter Notebook per mostrare come accedere ed esplorare i dati. Nella pagina di avvio sono disponibili blocchi appunti di esempio. Verrà utilizzata la ricetta Vendite al dettaglio per Python 3.

La ricetta Vendite al dettaglio è un esempio indipendente che utilizza lo stesso set di dati Vendite al dettaglio per mostrare come i dati possono essere esplorati e visualizzati in Jupyter Notebook. Inoltre, il notebook è ulteriormente approfondito con l'addestramento e la verifica. Ulteriori informazioni su questo blocco appunti specifico sono disponibili in questa procedura dettagliata.

Accedere ai dati

NOTE
data_access_sdk_python è obsoleto e non è più consigliato. Fai riferimento all'esercitazione conversione dell'SDK di accesso ai dati in SDK piattaforma per convertire il codice. Per questa esercitazione valgono ancora gli stessi passaggi indicati di seguito.

L'accesso ai dati interni da Adobe Experience Platform e esterni verrà eseguito. La libreria data_access_sdk_python verrà utilizzata per accedere a dati interni come set di dati e schemi XDM. Per i dati esterni, verrà utilizzata la libreria Panda Python.

Dati esterni

Con il blocco appunti Retail Sales aperto, trovare l'intestazione "Load Data". Il codice Python seguente utilizza la struttura dati DataFrame dei panda e la funzione read_csv() per leggere il file CSV in hosting su Github nel DataFrame:

La struttura dati DataFrame di Pandas è una struttura di dati etichettata bidimensionale. Per visualizzare rapidamente le dimensioni dei dati, è possibile utilizzare df.shape. Restituisce una tupla che rappresenta la dimensionalità del DataFrame:

Infine, possiamo dare un'occhiata all'aspetto dei nostri dati. È possibile utilizzare df.head(n) per visualizzare le prime n righe del DataFrame:

Experience Platform dati

Ora si passa all'accesso ai dati Experience Platform.

Per ID set di dati

Per questa sezione viene utilizzato il set di dati Vendite al dettaglio, che è lo stesso set di dati utilizzato nel blocco appunti di esempio Vendite al dettaglio.

In Jupyter Notebook, puoi accedere ai tuoi dati dalla scheda Dati Dati a sinistra. Selezionando la scheda, vengono fornite due cartelle. Selezionare la cartella Set di dati.

Ora nella directory Set di dati puoi visualizzare tutti i set di dati acquisiti. Se la directory è densamente popolata da set di dati, il caricamento di tutte le voci potrebbe richiedere un minuto.

Poiché il set di dati è lo stesso, vogliamo sostituire i dati di caricamento della sezione precedente che utilizza dati esterni. Selezionare il blocco di codice in Carica dati e premere due volte il tasto 'd' sulla tastiera. Assicurati che lo stato attivo sia sul blocco e non nel testo. È possibile premere 'esc' per uscire dallo stato attivo prima di premere 'd' due volte.

Ora è possibile fare clic con il pulsante destro del mouse sul set di dati Retail-Training-<your-alias> e selezionare l'opzione "Esplora dati nel blocco appunti" nel menu a discesa. Nel blocco appunti verrà visualizzata una voce di codice eseguibile.

TIP
Per convertire il codice, consultare la guida di Platform SDK.
from data_access_sdk_python.reader import DataSetReader
from datetime import date
reader = DataSetReader()
df = reader.load(data_set_id="xxxxxxxx", ims_org="xxxxxxxx@AdobeOrg")
df.head()

Se stai lavorando su kernel diversi da Python, fai riferimento a questa pagina per accedere ai dati su Adobe Experience Platform.

Se si seleziona la cella eseguibile e si preme il pulsante di riproduzione nella barra degli strumenti, verrà eseguito il codice eseguibile. L'output per head() sarà una tabella con le chiavi del set di dati come colonne e le prime n righe del set di dati. head() accetta un argomento di tipo Integer per specificare il numero di righe da restituire. Per impostazione predefinita è 5.

Se si riavvia il kernel e si eseguono di nuovo tutte le celle, si dovrebbero ottenere gli stessi output di prima.

Esplora i tuoi dati

Ora che possiamo accedere ai tuoi dati, concentriamoci sui dati stessi utilizzando statistiche e visualizzazioni. Il set di dati che utilizziamo è un set di dati di vendita al dettaglio che fornisce informazioni varie su 45 diversi negozi in un dato giorno. Alcune caratteristiche per un dato date e store includono:

  • storeType
  • weeklySales
  • storeSize
  • temperature
  • regionalFuelPrice
  • markDown
  • cpi
  • unemployment
  • isHoliday

Riepilogo statistico

È possibile sfruttare la libreria panda Python’s per ottenere il tipo di dati di ciascun attributo. L’output della chiamata seguente fornirà informazioni sul numero di voci e sul tipo di dati per ciascuna colonna:

df.info()

Queste informazioni sono utili in quanto conoscere il tipo di dati di ciascuna colonna ci consentirà di sapere come trattare i dati.

Vediamo ora il riepilogo statistico. Verranno visualizzati solo i tipi di dati numerici, pertanto date, storeType e isHoliday non verranno generati:

df.describe()

Con questo, possiamo vedere che ci sono 6435 istanze per ogni caratteristica. Vengono inoltre fornite informazioni statistiche quali media, deviazione standard (std), min, max e interquartili. Questo ci fornisce informazioni sulla deviazione per i dati. Nella prossima sezione presenteremo la visualizzazione che funziona insieme a queste informazioni per consentirci di comprendere bene i nostri dati.

Esaminando i valori minimo e massimo per store, è possibile notare che sono presenti 45 archivi univoci rappresentati dai dati. Ci sono anche storeTypes che differenziano cosa è un archivio. È possibile visualizzare la distribuzione di storeTypes eseguendo le operazioni seguenti:

Ciò significa che 22 archivi sono di storeType A, 17 sono storeType B e 6 sono storeType C.

Visualizzazione dati

Ora che conosciamo i valori dei nostri frame di dati, vogliamo integrarli con le visualizzazioni per rendere le cose più chiare e più facili da identificare. I grafici sono utili anche per trasmettere i risultati a un pubblico. Alcune librerie Python utili per la visualizzazione includono:

In questa sezione presenteremo rapidamente alcuni vantaggi relativi all’utilizzo di ogni libreria.

Matplotlib è il pacchetto di visualizzazione Python più vecchio. Il loro obiettivo è quello di rendere "le cose facili e difficili possibili". Questo tende ad essere vero in quanto il pacchetto è estremamente potente, ma è anche dotato di complessità. Non è sempre facile ottenere un grafico dall’aspetto ragionevole senza richiedere molto tempo e fatica.

Pandas viene utilizzato principalmente per il relativo oggetto DataFrame che consente la manipolazione dei dati con l'indicizzazione integrata. Tuttavia, i panda includono anche una funzionalità di plottaggio incorporata basata su matplotlib.

seaborn è una build del pacchetto sopra matplotlib. Il suo obiettivo principale è quello di rendere i grafici predefiniti più accattivanti dal punto di vista visivo e semplificare la creazione di grafici complessi.

ggplot è un pacchetto creato anche sopra matplotlib. Tuttavia la differenza principale è che l'utensile è una porta di ggplot2 per R. Simile al seaborn, l'obiettivo è quello di migliorare su matplotlib. Gli utenti che hanno familiarità con ggplot2 for R devono considerare questa libreria.

Univariati, grafici

I grafici univariati sono grafici di una singola variabile. Un comune grafico univariato viene utilizzato per visualizzare i dati sotto forma di grafico a scatola e sussurro.

Utilizzando i nostri set di dati di vendita al dettaglio precedenti, possiamo generare il box e il whisker plot per ciascuno dei 45 negozi e le loro vendite settimanali. Il plot viene generato utilizzando la funzione seaborn.boxplot.

Per mostrare la distribuzione dei dati viene utilizzato un grafico a scatola e a baffi. Le linee esterne del plottaggio mostrano i quartili superiore e inferiore, mentre la casella si estende sull'intervallo interquartile. La riga nella casella contrassegna la mediana. Tutti i punti di dati superiori a 1,5 volte il quartile superiore o inferiore sono contrassegnati da un cerchio. Questi punti sono considerati valori anomali.

Grafici multivariati

I grafici multivariati vengono utilizzati per visualizzare l’interazione tra le variabili. Con la visualizzazione, i data scientist possono vedere se ci sono correlazioni o pattern tra le variabili. Un comune grafo multivariato utilizzato è una matrice di correlazione. Con una matrice di correlazione, le dipendenze tra più variabili sono quantificate con il coefficiente di correlazione.

Utilizzando lo stesso set di dati di vendita al dettaglio, possiamo generare la matrice di correlazione.

Osservate la diagonale di 1 in basso rispetto al centro. Questo mostra che quando si confronta una variabile con se stessa, ha una correlazione positiva completa. Una correlazione positiva forte avrà una magnitudine più vicina a 1, mentre le correlazioni deboli saranno più vicine a 0. Viene mostrata una correlazione negativa con un coefficiente negativo che mostra una tendenza inversa.

Passaggi successivi

Questo tutorial illustra come creare un nuovo blocco appunti Jupyter in Data Science Workspace e come accedere ai dati sia esternamente che da Adobe Experience Platform. Nello specifico, abbiamo esaminato i seguenti passaggi:

  • Crea un nuovo Jupyter Notebook
  • Accedere a set di dati e schemi
  • Esplora i set di dati

Ora puoi passare alla sezione successiva per creare un pacchetto di una ricetta e importarla in Data Science Workspace.

recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9