Che cosa si intende per data mining?
Con Data Mining, termine inglese traducibile con estrazione di dati, si intende tutta quella serie di tecniche e di algoritmi che permettono di estrarre informazioni informazioni utili da poter poi analizzare in seguito, ad esempio con tecniche di Machine Learning (auto-apprendimento).
Che cos’è il Machine Learning?
Spesso questo concetto si associa a quello di knowledge discovery,
Spesso la mole di dati da dover estrarre ed analizzare supera le capacità di un singolo Personal Computer, in questo caso spesso si parla di Big Data.
Che cosa si intende per Big Data?
Non esiste una definizione unanime quando si parla di Big Data. Spesso si fa riferimento alle 5V utili a definire quando si è in presenza o meno di Big Data, ovvero:
Velocità
La velocità di elaborazione dei dati richiesta è estremamente elevata. In questo caso si parla spesso di real-time o near realtime.
Volume
In questo caso è volume di dati immagazinati ed analizzati ad essere estremamente elevato. Il Terabyte è ormai diventata una misura corrente per descrivere una grande quantità di dati, ma in alcuni sistemi si parla addirittura di Petabyte, che equivalgono a 1024 TB.
Varietà
Non solo il volume, ma anche la varietà e diversità dei dati può marcare la differenza tra quando ci si trova o meno in presenza di Big Data.
Veracità (o veridicità)
Per veracità si intende l’affidabilità e la qualità dei dati. Da dati di scarsa qualità infatti, non si possono estrarre informzioni utili. Pensa all’esempio di una foto digitale di bassa qualità, è estremamente difficile riconoscere i dettagli rappresentati in quest’ultima.
Valore
In questo caso ci si riferisce al valore, materiale o immateriale che i dati in questione possono apportare.
Come funziona il data mining
Solitamente le tecniche di Data Mining prevedono l’utilizzo di dati in input e di un algoritmo che permette di estrarre informazioni utili dai dati stessi. Infine l’algoritmo genera un output contenente le informazioni estratte dai dati stessi che può essere utilizzato per estrarre pattern e riconoscere segnali nei propri dati.
Come fare Data Mining: Qualche esempio
L’esempio più comune di data mining è rappresentato dal text mining. L’idea di base di questa tecnica è di trasformare un dato non strutturato come il testo, e poter estrarre informazioni da poter elaborare tramite un algoritmo.
Tra le tecniche più comuni si trova posto anche il clustering, un algoritmo che permette di raggruppare i dati in gruppi omogenei, ovvero accomunati da certe caratteristiche estratte dai dati in input.
Software per il Data Mining
Ci sono molti strumenti disponibili sul mercato al momento. Alcuni di questi sono a pagamento, come ad esempio il SAS Enterprise Miner. Negli ultimi anni però si sono affermati sempre di più sistemi basati su tecnologie e linguaggi di programmazione più aperti, come ad esempio R, particolarmente utilizzato in ambito accademico, o Python, ormai sempre più utilizzato in contesti aziendali.
Data Mining con Python
Python rappresenta uno dei linguaggi di programmazione più utilizzati al momento. Ci sono molte librerie utili per fare mining da un set di dati. Quella che fornisco qui di seguito è una lista non esaustiva delle librerie python più utilizzate in questo ambito
- sci-kit learn: spesso anche chiamata sklearn, comprende ormai una vasta quantità di modelli che hanno capacità di apprendimento dai dati ed utili a generare previsioni. Uno degli esempi classici è il modello di classificazione, in grado di prevedere ad esempio se un cliente ha alta probabilità di abbandonare un servizio (in gergo churn o attrition model). Questo è possibile tramite l’utilizzo di variabili utili a prevedere questo tipo di comportamento, come ad esempio il livello di soddisfazione del cliente rispetto al servizio offerto.
- pandas: questa libreria consente di manipolare dati provenienti da diverse sorgenti (file csv, fogli di calcolo o database, solo per citarne alcuni)
- numpy: la specialità di questa libreria è eseguire operazioni di calcolo a più basso livello rispetto a python. è ad esempio in grado di calcolare la moltiplicazione tra due matrici, sommare vettori, calcolare gradienti, etc.
- matplotlib: questa libreria consente di creare grafici ed ha un altissimo livello di personalizzazione. Per questo stesso motivo però, risulta a volte verboso creare particolari tipi di grafico
- seaborn: Seaborn è costruita su matplotlib e in qualche modo ne rappresenta una semplificzione, in quanto consente di creare grafici utilizzando una quantità di codice inferiore
Data mining: da dove cominciare
Essendo l’argomento estremamente vasto mi limiterò per ora a fornire qualche articolo e materiale utile ad approfondire la materia, promettendo di dedicare ulteriori articoli ad aspetti più specifici.
- Sicuramente è utile iniziare da Wikipedia per approfondire alcuni aspetti che per brevità non sono stati qui trattati: https://it.wikipedia.org/wiki/Data_mining
- C’è un libro gratuito che ho trovato estremamente interessante, perché in grado di descrivere argomenti tecnici con un tono leggero. Il suo nome è A programmer’s guide to Data Mining (in inglese)
- Infine è utile dare uno sguardo alla documentazione di pandas, per iniziare a giocare con l’estrazione e l’elaborazione dei dati: https://pandas.pydata.org/