Il data mining utilizza gli strumenti del machine learning per analizzare i dati e derivarne un modello o pattern.
E' un processo di analisi, svolto in modo semi-automatico, di una grande quantità di dati grezzi al fine di scoprire il modello o pattern che li governa, o una regola significativa, da cui ricavare conoscenze utili applicabili al nostro contesto operativo (come ad esempio previsioni e classificazioni).
Per modello si intende uno strumento che oltre a fornire l'output richiesto descrive anche con quale logica il sistema reale raggiunge quell'output (ad esempio gli alberi di decisione). La regola è invece un procedimento che ad un dato input permetta di associare il corrispondente output senza necessariamente conoscere il funzionamento intrinseco del sistema reale (è il caso delle reti neurali).
Gli obiettivi del data mining sono:
- Descrittivo: descrivere in modo non evidente (classificare, individuare gruppi in un insieme di dati la cui struttura non è visibile)
- Esplicativo: spiegare (insight), trovare modelli esplicativi (i fattori legati ad un fenomeno, correlazioni)
- Predittivo: fare previsioni sul futuro, sul valore delle variabili
I task di data mining si dividono in supervisionati e non supervisionati. I task supervisionati sono quelli in cui c'è un'ipotesi da verificare, una variabile target dipendente di cui vogliamo calcolare il valore sulla base del variare delle variabili indipendenti, come alberi decisionali e reti neurali, quelli non supervisionati sono quelli come cluster analysis e association rules in cui non ci sono variabili dipendenti.
I task supervisionati vengono utilizzati per la previsione del comportamento, ad esempio una banca può voler prevedere se un correntista sarà insolvente, hanno quindi come obiettivo la classificazione, la stima, la previsione.
La classificazione è l'assegnazione di un nuovo oggetto ad un classe predefinita dopo averne esaminato le caratteristiche e viene fatta in due fasi: quella di training, in cui si fornisce al sistema una porzione di dati costituita da esempi già classificati, e quella di creazione del modello applicabile ai nuovi dati.
La stima invece individua il valore di una variabile continua (reddito, saldo, quantità venduta di un prodotto). Si usa la stima per fare classificazioni.
La classificazione e la stima si possono usare per fare previsioni sul futuro.
I task non supervisionati hanno come obiettivo raggruppare e scoprire associazioni tra variabili, ad esempio individuare i gruppi di consumatori con gusti analoghi).
Clustering
Per clustering si intende la segmentazione di un gruppo eterogeneo in sottogruppi (cluster) omogenei. Ciò che distingue il clustering dalla classificazione è che qui non si fa ricorso a classi predefinite.
I cluster sono naturali quando i raggruppamenti avvengono spontanei sulla base delle caratteristiche dei membri del gruppo, la scelta delle caratteristiche da considerare è soggettiva e dipende dall'obiettivo dell'indagine e dal contesto applicativo.
Sono artificiali quando l'appartenenza ai gruppi è soprattutto determinata da fattori esterni ai dati: ordine di considerazione, formule di calcolo, metodi e scale di misurazione.
Scopo del clustering è la suddivisione di un set di dati complessi in un sottoinsieme di dati più semplice al fine di permettere a tecniche di data mining supervisionato di trovare con più facilità spiegazioni al comportamento. Quindi innanzitutto si identificano i gruppi che serviranno successivamente per creare l'albero di decisione e poi si sceglie il numero di cluster (k) desiderato, che deve essere maggiore di 1 e minore del numero totale di record.
I metodi di clustering possono essere agglomerativi o divisivi, tra questi ultimi abbiamo il metodo chiamato K-Means.
K-Means
Nel metodo K_Means (dove k indica il numero di cluster e means significa media) si sceglie arbitrariamente un numero di cluster, ad esempio 3, e si prendono quindi i tre punti corrispondenti sul piano cartesiano (detti seed). Poi si calcola la distanza euclidea di tutti i punti con i seed, e si assegna il punto al cluster del seed più vicino. Di ciascuno dei cluster si va poi a calcolare il punto medio (detto centroide) e si calcola la distanza di ciascun punto con ogni centroide. In questa fase i confini dei cluster si modificheranno, si ripete il processo (è un algoritmo iterativo) fino a che il centroide non si muove più o finchè non si raggiunge un livello di errore tollerabile (minimo errore quadratico).
Un cluster è buono quando gli elementi che vi appartengono sono molto simili tra loro e molto diversi da quelli appartenenti ad altri cluster.
Distanza euclidea: è la radice quadrata della somma del quadrato della differenza delle ordinate e delle ascisse
Distanza di Manhattan (geometria del taxi): schematizziamo il piano come una griglia, a maglie quadrate, rappresentanti le strade di una città. I taxi si muovono lungo le strade della città, quindi vanno da un punto all’altro cercando i percorsi di minima lunghezza che congiungono due punti. Rispetto alla geometria euclidea cambia il concetto di distanza: invece che "in linea d’aria" si deve calcolare la distanza sulla strada, dal momento che il "taxi" percorre le strade della città.
Per capire quanti k scegliere si può usare il metodo del gomito: si crea un grafico dove sull'asse delle x inseriamo i possibili valori di k, sull'asse delle y abbiamo l'errore quadratico medio (ogni volta che si fa girare l'algoritmo questo restituisce un errore quadratico medio). Si sceglierà il numero di k corrispondente al gomito del grafico perchè permette di avere il minor numero di cluster possibile con un livello di errore accettabile.
Quando le variabili sono di tipo categorico non si può usare l'algoritmo K-means, si userà il K-modes che si differenzia per il fatto che invece che la media si calcola la moda (il valore più frequente) e invece che la distanza euclidea si usa la formula di Tversky che dice che la somiglianza tra due concetti è data dal numero delle features che hanno in comune fratto il numero delle features che non hanno in comune.
Clustering gerarchico
E' una tipologia di clustering che può avvenire sia con il metodo agglomerativo che divisivo ma di solito viene usato il primo.
Si comincia aggregando gli elementi più vicini e poi creando degli altri cluster che comprendano quelli più piccoli.
I cluster gerarchici si visualizzano con i dendrogrammi ed osservandoli si decide quanti cluster considerare. Il dendrogramma ha sull'asse delle x gli individui e sull'asse delle y le distanze e ogni punto è collegato agli altri in base alla distanza.
Task di classificazione
Il training set è un insieme di esempi di addestramento, ogni esempio è una tupla con valori specifici di alcuni attributi (variabili indipendenti) più un attributo di classe (variabile dipendente o target). E' l'input, mentre l'output è dare un valore alla variabile target.