La risorsa strategica dei dati – impiego delle librerie python nella data science
L’importanza dei dati nel mondo degli affari è sempre stata grande perché l’informazione è un fattore critico per il successo delle aziende. Fin dalle prime transazioni commerciali, la disponibilità di dati accurati e rilevanti ha permesso di prendere decisioni informate e di comprendere meglio i clienti, i mercati e l’andamento aziendale.
Nelle ultime decadi, le moderne tecnologie digitali hanno moltiplicato esponenzialmente la quantità e la qualità dei dati disponibili.
L’avvento di internet e dei social media ha portato alla creazione di enormi quantità di dati generati dagli utenti stessi, come post sui social media, recensioni dei consumatori, commenti, preferenze e altro ancora. Questi dati contengono preziose informazioni sui comportamenti, le opinioni e le esigenze dei clienti.
La diffusione di dispositivi intelligenti e sensori rivoluzionari, come dispositivi mobili, sensori IoT, dispositivi indossabili e automobili connesse, ha portato a una moltitudine di dati generati in tempo reale. Questi dati possono includere informazioni ambientali, dati sulla salute, dati di navigazione, dati sulle abitudini di utilizzo e altro ancora, fornendo un’immensa quantità di informazioni ricche di insight.

L’adozione diffusa dei sistemi digitali per la gestione delle transazioni commerciali ha prodotto una quantità enorme di dati strutturati sulle vendite, gli acquisti. La disponibilità di questi dati ha permesso di ottenere una visione dettagliata delle operazioni aziendali e di guidare decisioni aziendali più informate.
Questo aumento della disponibilità dei dati ha portato a un crescente riconoscimento dell’importanza di organizzarli e analizzarli in modo efficace. Le moderne tecnologie come l’analisi dei dati, l’apprendimento automatico e l’intelligenza artificiale, hanno reso possibile e accessibile l’elaborazione e l’analisi di grandi quantità di dati in tempi ragionevoli.
Tale esigenza è particolarmente sentita rispetto al passato perché i dati sono diventati una vera e propria risorsa strategica per le aziende. L’organizzazione e l’analisi dei dati consentono di identificare trend, individuare opportunità di business, prevedere i comportamenti dei clienti, ottimizzare le operazioni, gestire il rischio e prendere decisioni più tempestive e informate.
Big data
Per le ragioni appena esposte è stata introdotta l’espressione Big data con la quale ci si riferisce a grandi insiemi di dati che sono vasti, complessi e crescono rapidamente. I Big data sono caratterizzati da tre aspetti principali, noti come le “3 V”: volume, velocità e varietà.
- Volume, perché sono caratterizzati da un volume massiccio di dati. Questi dati possono essere generati da una vasta gamma di fonti, come sensori, dispositivi connessi, social media, transazioni commerciali e altro ancora. Il volume dei dati può essere talmente grande che i metodi tradizionali di gestione e analisi dei dati potrebbero non essere sufficienti per affrontarli.
- Velocità, In quanto possono essere generati in tempo reale o ad alta velocità. Ad esempio, flussi di dati provenienti da social media o sensori richiedono tempi di elaborazione rapidi per estrarre informazioni significative o rilevare pattern e anomalie in tempo reale. L’analisi e l’elaborazione dei Big data devono essere in grado di gestire questa velocità di generazione dei dati.
- Varietà, infatti presentano una varietà di formati. Possono includere dati strutturati (come quelli presenti in database relazionali), dati semistrutturati (come i dati in formato XML o JSON) e dati non strutturati (come testo, immagini, audio o video). Questa varietà richiede strumenti e tecniche avanzate per gestire, organizzare e analizzare in modo efficace una vasta gamma di tipi di dati.
I Big data forniscono una risorsa cruciale per la Data Science. La vasta mole di dati a disposizione consente un’analisi approfondita e dettagliata, moltiplicando le opportunità di scoprire modelli, trend nascosti e relazioni significative. Inoltre, i Big data spesso richiedono l’uso di approcci innovativi per gestire la loro dimensione, velocità e varietà, come l’adozione di framework di analisi distribuiti o l’utilizzo di tecniche di elaborazione in-memory.
Che cos’è la Data Science?
La data science è un campo interdisciplinare che combina tecniche statistiche, matematiche e di programmazione per estrarre conoscenza e insight dai dati. Si occupa di acquisire, analizzare e interpretare grandi quantità di dati al fine di supportare la presa di decisioni basate su evidenze empiriche.

Il processo di data science solitamente include la raccolta dei dati, l’esplorazione e la pulizia dei dati, l’analisi e l’interpretazione dei dati, la creazione di modelli predittivi e la comunicazione dei risultati.
Un ruolo fondamentale nell’attività di data science è ricoperto dall’intelligenza artificiale e dal machine learning. Queste discipline consentono di sviluppare algoritmi che possono imparare dai dati e fare previsioni o prendere decisioni senza essere esplicitamente programmati.
L’obiettivo è quello di ottenere informazioni significative dai dati al fine di supportare la soluzione di problemi complessi, può dare una spinta all’innovazione e migliorare l’efficienza operativa in numerosi settori come l’industria, la finanza, la sanità, il marketing e molti altri.
Un libro consigliato sull’argomento è “The Data Science Handbook” di Field Cady, Carl Shan, e Ryan Louie, che offre una panoramica approfondita su tecnologie e metodologie utilizzate nella data science.
Semplice esempio nel marketing
Immaginiamo di avere un dataset che contiene informazioni sugli acquisti effettuati dagli utenti, come il prodotto acquistato, l’orario di acquisto, l’importo speso e altre informazioni demografiche degli utenti.
Attraverso l’utilizzo di tecniche di analisi dei dati, possiamo esplorare il dataset per individuare pattern comuni. Ad esempio, possiamo scoprire che c’è un aumento delle vendite di un particolare prodotto durante un certo periodo dell’anno o che gli utenti di una determinata fascia di età tendono ad acquistare prodotti simili.
Successivamente, possiamo utilizzare modelli di machine learning, come le reti neurali o i modelli generativi del linguaggio, per creare previsioni o raccomandazioni personalizzate. Ad esempio, possiamo sviluppare un modello che consiglia i prodotti agli utenti in base ai loro acquirenti simili o che predice il comportamento di acquisto di un utente in base ai suoi pattern passati.
Infine, comunicando i risultati ottenuti alle parti interessate, come il team di marketing, possiamo guidare decisioni strategiche basate sui dati per ottimizzare le campagne pubblicitarie, migliorare la customer experience e aumentare le vendite.
Come si è visto, ciò che interessa in particolare durante l’analisi dei dati è l‘individuazione di pattern che si ripetono (pattern comuni).
Per individuare pattern comuni all’interno di un dataset, è necessario condurre una fase di analisi esplorativa dei dati (EDA, Exploratory Data Analysis). L’EDA è un processo che consente di comprendere la natura del dataset, identificare relazioni tra le variabili e rilevare eventuali pattern o tendenze.
Ecco alcuni passaggi chiave che possono essere seguiti durante l’EDA per individuare pattern comuni:
- Calcolare statistiche di base come media, mediana, deviazione standard può fornire una panoramica del dataset e delle sue caratteristiche principali. Queste metriche possono aiutare a identificare valori anomali e fornire una base per il confronto con ulteriori analisi.
- Utilizzare grafici e visualizzazioni per rappresentare i dati è un modo efficace per esplorare i pattern. Ad esempio, un grafico a dispersione (scatter plot) può rivelare relazioni tra due variabili continue, mentre un grafico a barre (bar chart) può mostrare la distribuzione di una variabile categorica. La libreria Python matplotlib o la libreria R ggplot2 sono popolari per la creazione di visualizzazioni.
- Esplorare le relazioni tra le variabili può rivelare pattern comuni. Ad esempio, è possibile calcolare la correlazione tra le variabili numeriche per determinare se esiste una relazione lineare tra loro. In alternativa, è possibile utilizzare tecniche di analisi di clustering per trovare gruppi o cluster di dati che hanno caratteristiche simili.
- L’uso di test statistici può aiutare a valutare la significatività dei pattern individuati. Ad esempio, un test di ipotesi può essere utilizzato per determinare se due gruppi di dati sono significativamente diversi tra loro. Questi test possono fornire una solida base di prova per l’esistenza di pattern comuni nel dataset.
È importante sottolineare che l’individuazione di pattern comuni durante l’EDA non implica necessariamente una relazione causale. È necessaria ulteriore analisi e interpretazione dei dati per confermare l’esistenza di tali pattern e comprenderne il significato.
Per approfondire l’argomento dell’analisi esplorativa dei dati si può leggere questa risorsa
Per approfondire l’intero tema della data science puoi leggere l’intero testo cliccando qui
Altre risorse utili molto attinenti alla data science sono:
- “Data Science for Business” di Foster Provost e Tom Fawcett: Il libro fornisce una panoramica del data science dal punto di vista aziendale, concentrandosi sull’applicazione pratica nelle decisioni aziendali.
- “Python for Data Analysis” di Wes McKinney: L’opera si concentra sull’utilizzo del linguaggio di programmazione Python per analizzare e manipolare i dati, con un’enfasi sull’utilizzo della libreria pandas.
- “The Elements of Statistical Learning” di Trevor Hastie, Robert Tibshirani e Jerome Friedman: Questo libro è una risorsa completa per l’apprendimento automatico e la statistica, con spiegazioni dettagliate di concetti e algoritmi chiave.
Python per gestire i dati (libreria Pandas)
La manipolazione dei dati con Pandas è un argomento fondamentale nel data science e nell’analisi dei dati utilizzando Python. Pandas è una libreria open source che offre strutture dati e strumenti per la manipolazione, la pulizia, la trasformazione e l’analisi dei dati in modo efficiente e potente.
Ecco alcuni concetti chiave che vengono coperti nella manipolazione dei dati con pandas:
- Strutture dati pandas: Due delle strutture dati principali in pandas sono la Series e il DataFrame. Una Series è una struttura di dati unidimensionale che può contenere dati di tipo omogeneo o eterogeneo, mentre un DataFrame è una struttura di dati bidimensionale simile a una tabella, che organizza i dati in righe e colonne.
- Caricamento e salvataggio dei dati: Pandas fornisce metodi per importare dati da diverse fonti come file CSV, Excel, database, JSON, HTML e molto altro ancora. È anche possibile salvare i dati in vari formati.
- Pandas offre metodi per selezionare, estrarre e filtrare i dati in base a determinate condizioni. È possibile utilizzare indicizzazioni basate su posizione (utilizzando numeri di riga e colonna) o indicizzazioni basate su etichette (utilizzando etichette di riga e colonna).
- Fornisce strumenti per la pulizia e la trasformazione dei dati, come rimozione dei duplicati, gestione dei valori mancanti, riorganizzazione della struttura dei dati e manipolazione delle stringhe.
- È possibile aggregare i dati utilizzando funzioni di aggregazione come somma, media, conteggio, minimo, massimo, e altro ancora. Inoltre, pandas offre la possibilità di raggruppare i dati in base a una o più variabili e applicare operazioni specifiche a ciascun gruppo.
- la libreria consente di combinare dati da diverse fonti basandosi su una o più colonne comuni. Ciò può essere utile per unire dati provenienti da più file o database.
- Visualizzazione dei dati: Pandas offre anche la possibilità di visualizzare i dati in forma tabulare attraverso la creazione di grafici e visualizzazioni. Può essere utilizzato insieme ad altre librerie come matplotlib e seaborn per creare grafici più complessi.
Per approfondire ulteriormente la manipolazione dei dati con pandas, si consiglia di consultare la documentazione ufficiale di pandas.
Esempi di codice
Ecco un semplice schema di codice che crea un DataFrame con pandas
import pandas as pd
# definizione dei dati
data = {'Nome': ['Giulia', 'Mario', 'Laura', 'Carlo'],
'Cognome': ['Rossi', 'Verdi', 'Bianchi', 'Neri'],
'Età': [29, 38, 42, 20],
'Città': ['Torino', 'Milano', 'Roma', 'Firenze']}
# creazione del dataframe
df = pd.DataFrame(data)
# visualizzazione del dataframe
print(df)
OUTPUT

Un esempio di script python per importare tutti i file CSV di una directory ed inserirli in un unico dataframe:
import os
import pandas as pd
# Definiamo la cartella di lavoro
cartella = "/path/to/directory/"
# Lista dei file CSV presenti nella cartella
files = [f for f in os.listdir(cartella) if f.endswith('.csv')]
# Inizializziamo un dataframe vuoto
df = pd.DataFrame()
# Iteriamo sui file CSV e li uniamo in un unico dataframe
for file in files:
df_temp = pd.read_csv(os.path.join(cartella, file))
df = pd.concat([df, df_temp], ignore_index=True)
# Stampiamo le prime 50 righe del dataframe
print(df.head(50))
Il codice df_temp = pd.read_csv(os.path.join(cartella, file))
viene utilizzato all’interno del ciclo for
per leggere un file CSV nella cartella specificata e creare un DataFrame temporaneo df_temp
.
Per eseguire questa operazione, vengono utilizzate due funzioni:
- os.path.join: questa funzione viene utilizzata per combinare il percorso della cartella e il nome del file in un unico percorso valido. La funzione
join
unisce i suoi argomenti utilizzando il separatore di percorso del sistema operativo. - pd.read_csv: questa funzione di Pandas viene utilizzata per leggere il file CSV. Il parametro
os.path.join(cartella, file)
viene utilizzato per specificare il percorso del file. Il risultato dell’operazione viene quindi assegnato al DataFrame temporaneodf_temp
.
In sintesi, la riga di codice df_temp = pd.read_csv(os.path.join(cartella, file))
legge il file CSV specificato nella variabile file
della cartella di lavoro (specificata nella variabile cartella
), crea un DataFrame temporaneo df_temp
contenente i dati del file CSV e aggiunge questi dati al DataFrame principale df
.
La visualizzazione dei dati
La visualizzazione dei dati è un aspetto cruciale nell’analisi dei dati e nel data science. Consiste nell’utilizzo di grafici e visualizzazioni per rappresentare i dati in modo comprensibile e significativo. La visualizzazione dei dati aiuta a identificare pattern, relazioni, tendenze e anomalie nei dati, consentendo una migliore comprensione e interpretazione delle informazioni contenute.
matplotlib, seaborn, plotly e Tableau sono tutti strumenti molto utilizzati nella visualizzazione dei dati.
Matplotlib è una libreria di visualizzazione dei dati molto popolare in Python. Offre una vasta gamma di opzioni per la creazione di grafici e visualizzazioni, tra cui grafici a barre, grafici a linee, istogrammi, scatter plot, grafici a torta, visualizzazioni tridimensionali e altro ancora. Matplotlib è altamente personalizzabile e permette di controllare i dettagli visivi dei grafici, come colori, etichette degli assi, titoli e legende. Essendo altamente flessibile, può richiedere un po’ di codice per creare visualizzazioni complesse, ma offre un controllo totale sui dettagli visivi.
Esempio semplice di grafico con matplotlib
import matplotlib.pyplot as plt
# Dati da visualizzare
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Creazione del grafico
plt.plot(x, y)
# Personalizzazione del grafico
plt.title("Esempio di grafico a linee")
plt.xlabel("Asse x")
plt.ylabel("Asse y")
# Impostare la stessa scala sugli assi x e y
plt.axis('equal')
# Mostrare il grafico
plt.show()
OUTPUT

Seaborn è una libreria Python costruita sopra Matplotlib che fornisce un’interfaccia più semplice e una maggiore facilità d’uso per creare visualizzazioni statistiche. È particolarmente utile per la creazione di grafici di distribuzione, grafici a barre raggruppati, grafici a dispersione con linee di regressione e mappe di calore. Seaborn offre anche degli stili predefiniti piacevoli alla vista che rendono le visualizzazioni più eleganti.
Esempio di grafico a barre con Seaborn e matplotlib
import seaborn as sns
import matplotlib.pyplot as plt
# Dati da visualizzare
categorie = ['A', 'B', 'C']
valori1 = [10, 15, 5]
valori2 = [8, 12, 7]
# Creazione del DataFrame
data = {
'Categorie': categorie,
'Valori1': valori1,
'Valori2': valori2
}
df = pd.DataFrame(data)
# Creazione del grafico a barre raggruppate
sns.barplot(x='Categorie', y='Valori1', data=df, color='skyblue', label='Valori1')
sns.barplot(x='Categorie', y='Valori2', data=df, color='orange', label='Valori2')
# Personalizzazione del grafico
plt.title("Esempio di grafico a barre raggruppate con Seaborn")
plt.xlabel("Categorie")
plt.ylabel("Valori")
# Aggiungere una legenda
plt.legend()
# Mostrare il grafico
plt.show()
OUTPUT

Esempio di grafico a dispersione intorno ad una retta
import matplotlib.pyplot as plt
import numpy as np
# Dati da visualizzare
x = np.linspace(0, 10, 100)
y = np.random.normal(2 * x, 1)
# Creazione del grafico a dispersione
plt.scatter(x, y)
# Personalizzazione del grafico
plt.title("Grafico a dispersione con una retta")
plt.xlabel("Variabile X")
plt.ylabel("Variabile Y")
# Mostrare il grafico
plt.show()
In questo esempio, abbiamo generato un array “x” con valori che vanno da 0 a 10 utilizzando numpy.linspace() (100 è il numero dei valori da estrarre). Abbiamo quindi generato un array “y” di valori casuali intorno alla retta “y = 2x” utilizzando numpy.random.normal().
Successivamente, abbiamo utilizzato la funzione scatter() per creare il grafico a dispersione, passando gli array “x” e “y” come argomenti.
Infine, abbiamo personalizzato il grafico aggiungendo un titolo utilizzando la funzione title(), etichette agli assi x e y con le funzioni xlabel() e ylabel().
Nota che per generare i dati casuali intorno alla retta, abbiamo utilizzato numpy.random.normal() che genera valori casuali distribuiti secondo una distribuzione normale.
OUTPUT

Tecniche di clustering nella data science
Sull’argomento del clustering abbiamo già scritto un articolo qui
In questo contesto approfondiamo il tema considerandolo nella prospettiva della data science e di come tali tecniche siano molto utili per gestire elevate quanità di dati
Le tecniche di clustering sono ampiamente utilizzate nella data science per raggruppare dati simili o correlati in cluster omogenei. Questi algoritmi di clustering sono utili per scoprire strutture nascoste, identificare pattern e ottenere una migliore comprensione dei dati. Ecco come utilizzare le tecniche di clustering nella data science:
- Prima di applicare algoritmi di clustering, è necessario preparare i dati in modo appropriato. Questo può includere l’elaborazione dei dati mancanti o anomali, la normalizzazione delle variabili, la gestione delle variabili categoriche e la riduzione della dimensionalità.
- Esistono diversi algoritmi di clustering disponibili, come il k-means, il clustering gerarchico, il DBSCAN e il clustering spettrale. La scelta di un algoritmo dipende dai requisiti specifici del problema e dalla natura dei dati. Ad esempio, il k-means è adatto per il clustering in gruppi significativi e compatti, mentre il clustering gerarchico può catturare sia strutture gerarchiche che gruppi di diverse dimensioni.
- Alcuni algoritmi, come k-means, richiedono la specifica di parametri come il numero di cluster desiderati. È importante selezionare con attenzione i parametri per ottenere risultati significativi e coerenti. L’utilizzo di tecniche come l’analisi del gomito o l’indice di validità del clustering può aiutare nella scelta dei parametri ottimali.
- Una volta selezionato l’algoritmo e i parametri appropriati, è possibile eseguire l’algoritmo di clustering sui dati. Questo assegna ogni punto del dataset a un cluster sulla base della loro similarità o distanza.
- Dopo l’esecuzione del clustering, è importante esplorare e valutare i risultati ottenuti. Questo può includere l’analisi della distribuzione dei punti tra i cluster, la visualizzazione dei cluster, la valutazione dell’omogeneità e della separazione dei cluster utilizzando misure come l’indice di silhoutte o l’indice di validità del clustering.
- Infine, i risultati possono essere interpretati e utilizzati per prendere decisioni o informare il processo decisionale. Ad esempio, i cluster possono fornire informazioni su sottogruppi o segmenti di clienti per una strategia di marketing mirata, o possono essere utilizzati come input in altre analisi o modelli di machine learning.
k-means
L’algoritmo k-means inizia selezionando k centroidi in modo casuale o tramite altri metodi di inizializzazione. Successivamente, assegna ciascun punto dati al cluster la cui centroide è più vicina, utilizzando una misura di distanza euclidea o altre misure di distanza. Dopo la fase di assegnazione, i centroidi dei cluster vengono ricalcolati come la media dei punti appartenenti a ciascun cluster. Questo processo di assegnazione e aggiornamento dei centroidi viene ripetuto fino a quando i centroidi convergono o si verifica un criterio di terminazione specificato.
Un aspetto critico nell’utilizzo dell’algoritmo k-means è la scelta del numero di cluster k. La scelta corretta di k dipende dalla natura dei dati e dagli obiettivi dell’analisi. Spesso vengono utilizzate tecniche come l’analisi del gomito o l’indice di validità del clustering per aiutare a selezionare il valore ottimale di k.
L’algoritmo k-means ha alcune limitazioni. Ad esempio, può essere sensibile all’inizializzazione dei centroidi e può convergere a minimi locali invece del risultato ottimale. Inoltre, k-means funziona meglio con cluster di forma sferica e dimensioni simili. Se i dati presentano cluster di forma irregolare o di dimensioni diverse, potrebbe essere necessario utilizzare altri algoritmi di clustering come il DBSCAN o il clustering gerarchico.
Prima di applicare l’algoritmo k-means, è spesso consigliabile effettuare una trasformazione o una normalizzazione dei dati per garantire che tutte le variabili abbiano peso paritario e abbiano un’importanza comparabile.
L’algoritmo k-means è ampiamente utilizzato in diverse applicazioni, come l’analisi dei dati, l’apprendimento automatico, l’elaborazione delle immagini, il raggruppamento di documenti e molto altro. Può essere utilizzato per estrarre informazioni significative dai dati, identificare pattern o segmentare gruppi omogenei. Per implementare l’algoritmo k-means, puoi utilizzare librerie di machine learning come scikit-learn in Python o altre risorse disponibili in diversi linguaggi di programmazione.
DBSCAN
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) è un algoritmo di clustering ampiamente utilizzato nell’analisi dei dati. A differenza di algoritmi di clustering come k-means, DBSCAN non richiede la specifica di un numero fisso di cluster, ma è in grado di identificare autonomamente la forma e il numero dei cluster basandosi sulla densità dei punti dati.
Ecco alcuni punti chiave da approfondire su DBSCAN:
L’idea alla base di DBSCAN è che un cluster è una regione in cui i punti dati sono densamente concentrati. L’algoritmo identifica punti core, che sono circondati da un numero minimo di punti (definito come parametro epsilon) per essere considerati parte del cluster. I punti che non soddisfano questa condizione sono considerati come rumore o punti di confine.
DBSCAN inizia selezionando un punto dati casuale e identificando tutti i punti presenti nel suo intorno (definito come una sfera con raggio epsilon). Se il numero di punti presenti nell’intorno soddisfa una soglia minima prefissata (definito come parametro minPts), viene costituito un cluster. Successivamente, l’algoritmo si espande in modo ricorsivo per identificare tutti i punti core raggiungibili dal cluster iniziale.
L’algoritmo richiede due parametri principali: epsilon (eps) e minPts. Il valore eps definisce la distanza massima tra due punti affinché vengano considerati vicini. Il valore minPts rappresenta il numero minimo di punti richiesti per formare un cluster. La scelta corretta di questi parametri dipende dalla densità dei dati e dal numero e dalla forma dei cluster attesi.
DBSCAN offre alcuni vantaggi rispetto ad altri algoritmi di clustering. È in grado di identificare cluster di forma e dimensioni diverse, è robusto rispetto al rumore e non richiede la specifica del numero di cluster in anticipo. Inoltre, DBSCAN è efficiente sulle grandi dimensioni dei dati. La scelta dei parametri eps e minPts può essere critica per ottenere risultati significativi, e talvolta può richiedere un’analisi esplorativa approfondita dei dati.
Anche per implementare DBSCAN, è possibile utilizzare librerie di machine learning come scikit-learn in Python o altre risorse disponibili in diversi linguaggi di programmazione. Esistono anche tutorial e esempi online che ti aiuteranno a comprendere meglio l’implementazione e le applicazioni di DBSCAN.
Dati strutturati e non strutturati
I dati strutturati sono dati organizzati secondo uno schema predefinito e definito. In altre parole, sono dati che sono ordinati in tabelle, con colonne ben definite e tipi di dati specifici associati a ciascuna colonna. Questo schema fornisce una struttura chiara e definisce come i dati devono essere interpretati e utilizzati.
Un esempio comune di dati strutturati sono le tabelle di un database relazionale, in cui ogni riga rappresenta un’istanza o un record e ogni colonna contiene un attributo o una caratteristica specifica. Ad esempio, una tabella di un database del personale può avere colonne come “Nome”, “Cognome”, “Data di nascita” e “Ruolo”. Ogni riga in questa tabella rappresenta un singolo dipendente con informazioni associate ai campi definiti.
Tali dati consentono di effettuare operazioni di ricerca, filtraggio, aggregazione e analisi senza ambiguità. Possono essere facilmente interrogati utilizzando il linguaggio di query come SQL (Structured Query Language) per ricavare informazioni specifiche o estrarre statistiche.
I dati non strutturati comprendono testi, immagini, audio, video, dati dei social media, e-mail, documenti, pagine web e molto altro ancora. Questi dati sono spesso di grande volume, velocità e varietà, rendendo l’elaborazione e l’interpretazione un compito complesso.
La crescente quantità di dati non strutturati ha spinto gli scienziati dei dati a sviluppare nuove tecniche e strumenti per l’elaborazione dei dati non strutturati, al fine di ottenere informazioni significative e integrarle con i dati strutturati.
Per affrontare l’analisi dei dati non strutturati, sono utilizzate diverse tecniche e approcci:
Natural Language Processing (NLP): L’NLP è un’area di ricerca che si occupa dell’elaborazione del linguaggio naturale
La computer vision è la disciplina che si occupa dell’elaborazione e dell’analisi di immagini e video.
Speech Processing o elaborazione delle informazioni dal parlato
Deep Learning e reti neurali
Esempio di analisi dei dati non strutturati
Un esempio di analisi dei dati non strutturati utilizzando la NLP potrebbe riguardare l’analisi dei sentimenti sui social media.
Immaginiamo di voler capire come le persone si sentono nei confronti di un particolare prodotto o servizio. Raccogliamo una grande quantità di tweet che menzionano quel prodotto o servizio e vogliamo determinare se i tweet esprimono un sentimento positivo o negativo.
Per l’analisi dei dati non strutturati utilizzando la NLP, seguiremmo i seguenti passaggi:
- Prendiamo il testo dei tweet e applichiamo tecniche di pre-elaborazione come la rimozione di punteggiatura, la tokenizzazione delle parole (dividere il testo in parole), la rimozione delle stop word (parole comuni come “e”, “il”, “che” che non portano significato) e la lemmatizzazione (riduzione delle parole alla loro forma base).
- Convertiamo il testo tokenizzato in una rappresentazione numerica che possa essere utilizzata dagli algoritmi di machine learning (vettorializzazione). Una scelta comune è l’utilizzo delle borse di parole (bag-of-words) o di modelli più avanzati come word2vec o GloVe, che catturano i significati delle parole basandosi sul contesto in cui appaiono.
- Utilizziamo modelli di classificazione come Support Vector Machines, Random Forests o reti neurali per addestrare il modello sui dati etichettati con sentimenti positivi o negativi. Durante il processo di addestramento, il modello imparerà a riconoscere i pattern e a identificare il sentimento associato.
- Valutiamo le prestazioni del modello utilizzando un insieme di dati di test separato. Calcoliamo metriche come l’accuratezza, la precisione e il richiamo per valutare quanto bene il modello può classificare i tweet in base ai sentimenti.
Una volta completati questi passaggi, abbiamo un modello addestrato che può essere utilizzato per classificare nuovi tweet in base ai sentimenti. Possiamo applicare il modello a un flusso di dati in tempo reale proveniente dai social media per monitorare le opinioni degli utenti in tempo reale e ottenere un’analisi dei sentimenti aggiornata.