Enable JQuery execution.
Abilitare l'esecuzione di JQuery
Use an SVG enabled browser (eg Chrome, Firefox) for a proper visualization of the content.
See instructions here.
Per una corretta fruizione dei contenuti del sito deve essere utilizzato un browser abilitato alla visualizzazione di SVG (es. Chrome, Firefox).
Vedere le istruzioni qui.

Data Mining

 

 

 

Introduzione

Al giorno d'oggi è abbastanza comune avere a disposizione grandi masse di dati in formato digitale. Grandi masse di dati che sono umanamente intrattabili.

Dunque ci si pone il problema di come sia possibile automatizzare in qualche modo il trattamento dei dati per trarne quelle informazioni che un essere umano "esperto" di un particolare settore riuscirebbe ad estrarre se avesse a disposizione una mole di dati più contenuta.

Ad esempio, il commesso di un negozio apprende con l'esperienza che un certo tipo di clientela predilige certi prodotti, quindi sarebbe in grado di fornire suggerimenti sugli acquisti. Ma un grande sito di e-commerce, con migliaia di clienti e migliaia di prodotti in vendita che cambiano di giorno in giorno, non può dedicare dei commessi ai singoli clienti per indirizzarne gli acquisti. Si deve trovare un modo per automatizzare il più possibile ciò che farebbe un essere umano. Cioè classificare i clienti in base ai loro interessi e suggerire i prodotti che potrebbero essere interessati ad acquistare. In questo modo si potrebbe ottimizzare un intervento promozionale restringendolo ai soli clienti con particolari caratteristiche, senza disperdere inutilmente le risorse economiche su tutti i clienti.

 

Al problema del trattamento automatico di grandi masse di dati si propone di dare una risposta il data mining. Ovviamente "data mining" è solo un modo di riferirsi a quell'insieme di tecniche ideate per raggiungere lo scopo descritto. Nel mercato vengono presentate sotto nomi diversi, più o meno altisonanti e di tendenza.

In sostanza si tratta dell'applicazione a questo contesto specifico di tecniche derivate dalle varie discipline scientifiche, come ad esempio la Statistica e l'Informatica.

Il data mining rientra nel più vasto repertorio di tecniche per il supporto alle decisioni.

 

Un ruolo importante nel data mining viene giocato dall'esperienza del professionista (il data miner) che progetta e attua l'analisi. Gli algoritmi utilizzati richiedono l'impostazione di parametri abbastanza arbitrari e solo l'esperienza può suggerire la direzione da seguire. Ovviamente l'analisi non può prescindere dal contributo dell'esperto del settore che commissiona l'analisi. Questo deve fornire i dati e specificare l'obiettivo, guidando le scelte e validando i risultati ottenuti.

 

Obiettivi del data mining

I dati possono essere elaborati in molti modi diversi.

Di seguito ne vengono proposti alcuni.

 

Classificazione

Analizzando i dati a disposizione, si cerca di evidenziare eventuali regolarità e legami in modo tale da prevedere una certa caratteristica prima che si manifesti. In altre parole si vuole assegnare ad un elemento un'etichetta che ne identifica la classe di appartenenza.

Ad esempio, analizzando lo storico dei comportamenti dei clienti, è possibile prevedere quali dei clienti attuali si rischia di perdere, in maniera tale da attuare degli interventi di fidelizzazione mirati.

 

Clusterizzazione

Si desidera suddividere gli elementi in gruppi in modo tale che elementi dello stesso gruppo siano simili tra loro.

Ad esempio, è possibile suddividere i clienti in gruppi aventi esigenze simili, verso i quali si possono attuare delle campagne promozionali mirate.

 

Analisi delle associazioni

Si desidera individuare dei legami tra elementi di un insieme sotto forma di gruppi ricorrenti.

Ad esempio, si possono individuare quali sono i prodotti che vengono di norma acquistati insieme.

 

Preprocessing

I dati provengono da varie fonti (cartacee, digitali), in vari formati (testo, foglio di calcolo, formati particolari), e possono essere soggetti ad errori (trascrizioni errate), incompletezza (dati parziali o mancanti), sovrabbondanza (dati inutili ai fini dell'analisi), ridondanza (correlazione tra dati).

Il preprocessing è la fase preliminare di elaborazione dei dati che mira a produrre dei dati elaborabili nelle successive fasi.

 

Analisi dei dati

Si parte da analisi statistiche dei dati a disposizione. Media, moda, mediana, varianza, covarianza, correlazione sono gli strumenti matematici di base.

 

Valori mancanti

A volte di un elemento non abbiamo a disposizione tutte le informazioni richieste.

E' necessario quindi completare i dati con valori arbitrari che permettano comunque una elaborazione.

Analizzando statisticamente i singoli campi dei record, è possibile stabilire dei criteri per assegnare i valori mancanti.

Ad esempio un attributo mancante può essere sostituito dalla media o dalla moda dello stesso attributo, eventualmente condizionate dal valore assunto da altri attributi.

 

Aggregazione

Può essere utile aggregare record o campi per ridurre la massa di dati da elaborare (e quindi costi e tempi) ed evidenziare solo le caratteristiche utili ai fini dell'obiettivo.

 

Campionamento

Sempre al fine di ridurre la massa di dati da elaborare (e quindi costi e tempi) può essere utile campionare i dati estraendone una parte significativa.

Il campione ottenuto deve essere rappresentativo dell'insieme di partenza, cioè deve conservarne le caratteristiche di interesse.

A tale scopo esistono varie tecniche di campionamento, con o senza ripetizione, semplice o stratificato, di dimensione ridotta o elevata.

 

Riduzione della dimensione

Si riduce il numero di attributi considerati per ogni elemento in modo da ottenere un miglioramento prestazioni e una migliore interpretazione dei risultati.

La riduzione del numero di attributi da considerare si basa sull'analisi dei legami esistenti tra di loro. L'obiettivo è quello di conservare gli attributi significativi ai fini dell'analisi, trascurando quelli che non portano informazioni rilevanti.

 

Discretizzazione

Si riduce il numero di valori diversi di un attributo individuando una opportuna suddivisione in classi dei valori presenti.

Questo aiuta nell'elaborazione dei dati semplificandone l'analisi.

 

Classificazione

Si vuole assegnare una classe di appartenenza ad ogni elemento considerato nell'analisi.

La classificazione si basa sull'analisi di classificazioni precedenti e cerca di prevedere come sarà classificato un nuovo elemento.

Lo strumento che sarà utilizzato per la classificazione deve essere "addestrato".

I dati disponibili vengono suddivisi in insiemi di addestramento, usati per la costruzione di un modello dei dati, e insiemi di prova, per verificare se il classificatore costruito è effettivamente valido nell'ottenere la classificazione desiderata.

 

Le tecniche di classificazione utilizzate sono le più disparate. Ognuna si è dimostrata maggiormente efficace in settori particolari dove i dati assumono caratteristiche peculiari.

Di seguito alcune delle tecniche utilizzate.

 

Alberi di decisione

Si basano su un partizionamento progressivo e gerarchico dello spazio degli attributi.

Ogni nodo dell'albero rappresenta un test decisionale sul valore di un attributo e la profondità del nodo è indicativa della rilevanza dell'attributo nella classificazione dell'elemento.

 

Support Vector Machines

Si basa sulla scelta di iperpiani di separazione dello spazio degli attributi.

Richiedono la risoluzione di problemi di programmazione quadratica con vincoli lineari.

Con tecniche particolari di trasformazione non lineare e funzioni kernel si riescono a gestire anche insiemi non linearmente separabili.

 

Multi-layer perceptron

Si applicano le reti neurali artificiali addestrandole alla classificazione.

 

Regressione logistica, Classificatori di Bayes e Reti Bayesiane

Si basano sul calcolo delle probabilità condizionate.

Determinano la probabilità che un elemento sia classificato in una certa maniera noti i valori degli attributi.

La classificazione risultante sarà quella che ha la massima probabilità di essere corretta.

 

Valutazione delle prestazioni

Una volta ottenuto un classificatore se ne deve valutare la qualità, cioè si deve stabilire quanto attendibili e utili sono le sue previsioni sulla classe da assegnare ai vari elementi.

Ogni classificatore che si ottiene risente fortemente di tutte le scelte fatte durante il processo di modellazione e addestramento.

Ad esempio utilizzare un particolare elemento per l'addestramento o per il test può produrre classificatori diversi.

I classificatori che si possono ottenere non sono tutti ugualmente validi.

L'intera analisi si deve intendere come un processo ciclico di tarature sempre più precise degli algoritmi utilizzati.

La "manualità", l'esperienza personale, si è spostata dall'analisi dei singoli dati, divenuta impossibile, alla impostazione delle procedure di analisi.

Ottenere un buon classificatore è tutt'altro che facile. Ad esempio, uno dei problemi in cui si può incorrere è l'overfitting. Questo si verifica quando il classificatore fornisce risultati molto accurati sugli elementi conosciuti, ma molto imprecisi su quelli sconosciuti. Tipicamente il classificatore è stato tarato su misura per i dati noti. Se si vuole che un predittore si comporti bene anche con dati sconosciuti gli si deve lasciare un certo margine di errore.

 

La valutazione della qualità di un classificatore richiede l'introduzione di misure "oggettive".

Tali misure prendono in considerazione vari aspetti, quali l'accuratezza nei risultati, il costo computazionale, la robustezza rispetto alle anomalie nei dati, la scalabilità al crescere della mole di dati, l'interpretabilità dei risultati forniti.

 

Per valutare la qualità di un procedimento che porta ad un classificatore, considerando la dipendenza del classificatore dai dati utilizzati per l'addestramento e per il test, si procede a vari addestramenti con insiemi di dati diversi ottenuti applicando tecniche di campionamento particolari. Si procede quindi ad una valutazione complessiva di tutti i classificatori ottenuti.

 

Clusterizzazione

Si vuole suddividere gli elementi in sottoinsiemi (cluster) che condividono caratteristiche comuni.

La suddivisione in cluster risulta ovviamente arbitraria, però permette di far emergere eventuali relazioni esistenti tra gli elementi.

Ad esempio, anzichè vedere i clienti come una massa indistinta, si possono suddividere in gruppi significativi con caratteristiche in comune.

 

Esistono vari tipi di cluster:

  • partizioni in insiemi disgiunti

  • cluster gerarchici

  • cluster fuzzy

  • cluster con sovrapposizione

 

Anche le tecniche per individuarli sono varie e dipendono dal contesto operativo:

  • cluster basati su prototipi

  • cluster basati sulla densità

  • cluster basati sui grafi

  • cluster a mappe auto-organizzanti

 

La clusterizzazione richiede la definizione di una misura di prossimità tra gli elementi, una distanza tra le loro caratteristiche che permetta di effettuare ragionamenti metrici.

Esistono varie proposte sulle misure da adottare, che dipendono anche dalla tipologia di attributi considerati (quantitativi o qualitativi).

 

La clusterizzazione ottenuta va sottoposta ad una valutazione qualitativa spesso non facile.

Le difficoltà principali consistono nel rilevare se effettivamente nei dati è presente una qualche struttura significativa da far emergere e qual è il numero opportuno di cluster in cui suddividere gli elementi.

 

Analisi associativa

Si vuole far emergere l'esistenza di regole per la formazione di gruppi di oggetti.

Se in un gruppo sono presenti determinati elementi, quali altri elementi è probabile che siano presenti?

Ad esempio, se un cliente acquista determinati prodotti, con quali altri articoli probabilmente completerà l'acquisto? Questa informazione può essere utile nella disposizione degli articoli in un negozio o nella presentazione dei prodotti in un catalogo di e-commerce.

 

Il problema è computazionalmente abbastanza pesante da risolvere e a questo riguardo sono state ideate varie tecniche per aumentare l'efficienza degli algoritmi.

 

La valutazione delle regole ottenute si basa su considerazioni di utilità. In altre parole le regole generate devono avere un qualche contenuto informativo non banale e applicabile.

L'utilità dipende molto da fattori soggettivi, ma si sono comunque proposti degli indici che tentano di misurarla in maniera oggettiva.

 

Text mining

Una interessante applicazione delle tecniche di data mining si ha nell'elaborazione dei documenti testuali (e non solo).

Il trattamento dei testi ha caratteristiche peculiari dato che gli elementi con cui si lavora sono parole di un linguaggio naturale, con tutte le problematiche sintattiche e semantiche legate al modo di esprimersi degli esseri umani.

Tuttavia, pur con molte difficoltà, si è riusciti ad ottenere dei risultati interessanti.

Ad esempio analizzando le parole utilizzate in un post su un social network è possibile attribuire un sentiment all'utente che lo ha scritto. Senza leggere e capire il contenuto si può determinare, ad esempio, se sta esprimendo un parere positivo o negativo riguardo ad un prodotto.

 

Per poter applicare le tecniche sviluppate nel data mining, è necessario sottoporre i testi ad una elaborazione preventiva che li trasformi in un insieme di dati elaborabili.

Si parte da una suddivisione del testo in token, frammenti significativi.

Quindi si devono eliminare i token che non contribuiscono all'analisi perchè troppo comuni o comunque non utili ai fini di attribuire una semantica al testo.

I token significativi rimasti vanno classificati in base alla loro importanza e al loro ruolo nel testo.

Alla fine del processo di preparazione dei dati, si ottiene una versione numerica del testo che si può elaborare con gli algoritmi di data mining.

 

Il text mining può consentire, analizzando le parole contenute, di organizzare grandi quantità di documenti classificandoli per argomento trattato (senza doverli leggere).

Ad esempio, potremmo ricercare in una biblioteca tutti i libri che trattano di piante da frutto.

Oppure in un e-commerce potremmo ricercare tutti gli articoli che sono in qualche modo legati all'ascolto di musica. Questo analizzando statisticamente e, soprattutto, automaticamente (senza l'intervento umano) le descrizioni degli stessi.