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.
- Data Access SDK (obsoleto): l'SDK Data Access è ora obsoleto. Si prega di utilizzare la Platform SDK guida.
Esplora i notebook in Data Science Area di lavoro
In questa sezione vengono esplorati i dati precedentemente inseriti nello schema delle vendite 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 vedere una pagina simile a questa.
Nel nostro esercitazione, useremo Python 3 nel Jupyter Notebook per mostrare come accesso 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
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, andremo oltre l'accesso ai Experience Platform dati.
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 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.
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 negozi sono di storeType
A
, 17 sono storeType
B
, e 6 sono storeType
C
.
Visualizzazione dei dati
Ora che conosciamo i valori dei nostri frame di dati, vogliamo integrarli con visualizzazioni per rendere le cose più chiare e facili da identificare i modelli. I grafici sono utili anche quando si trasmettono i risultati a un pubblico. Alcuni Python librerie 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 il strumento è un porta di ggplot2 per R. Simile a seaborn, l'obiettivo è quello di migliorare matplotlib. Gli utenti che hanno familiarità con ggplot2 per R dovrebbero prendere in considerazione questo libreria.
Grafici univariati
I grafi univariati sono grafici di una singola variabile. Un grafico univariato comune viene utilizzato per visualizzare i dati è il grafico a scatola e baffi.
Utilizzando il nostro set di dati di vendita al dettaglio di prima, possiamo generare il grafico della scatola e dei baffi per ciascuno dei 45 negozi e le loro vendite settimanali. Il grafico viene generato utilizzando la seaborn.boxplot
funzione.
Un grafico a scatola e baffi viene utilizzato per mostrare la distribuzione dei dati. 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 esercitazione ha spiegato come creare un nuovo Jupyter Notebook nel Area di lavoro di data science e come accesso i dati esternamente e da Adobe Experience Platform. In particolare, 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.