1 Data Mining Corso di Metodi e Modelli per il Supporto alle Decisioni a.a. 2002-03 2 KDD e Data Mining - Introduzione (1) • Crescita notevole degli strumenti e delle tecniche per generare e raccogliere dati (introduzione codici a barre, transazioni economiche tramite carta di credito, dati da satellite o da sensori remoti, servizi on line..) • Sviluppo delle tecnologie per l’immagazzinamento dei dati, tecniche di gestione di database e data warehouse, supporti piu’ capaci piu’ economici (dischi, CD) hanno consentito l’archiviazione di grosse quantita’ di dati • Simili volumi di dati superano di molto la capacità di analisi dei metodi manuali tradizionali, come le query ad hoc. Tali metodi possono creare report informativi sui dati ma non riescono ad analizzare il contenuto dei report per focalizzarsi sulla conoscenza utile. 3 KDD e Data Mining - Introduzione (2) • Emerge l'esigenza di tecniche e strumenti con la capacità di assistere in modo intelligente e automatico gli utenti decisionali nell'estrazione di elementi di conoscenza dai dati. • Queste tecniche e strumenti sono al centro del campo emergente del Knowledge Discovery in Databases (KDD). • Il termine knowledge discovery in databases, o KDD, indica l'intero processo di ricerca di nuova conoscenza dai dati • Il termine di data mining si riferisce all'applicazione di algoritmi per estrarre pattern dai dati senza considerare gli ulteriori passi che caratterizzano il processo di KDD (come, ad esempio, incorporare appropriata conoscenza a priori e fornire una opportuna interpretazione dei risultati). 4 KDD e Data Mining - Introduzione (3) • Pertanto l'intero processo, tipicamente interattivo e iterativo, di ricerca, estrazione ed interpretazione di pattern dai dati, che indichiamo come KDD, coinvolge l'applicazione ripetuta di specifici metodi e algoritmi di data mining e l'interpretazione dei pattern generati da tali algoritmi. • Nel seguito forniremo una definizione più dettagliata di KDD e una panoramica sui metodi e gli algoritmi di data mining più usati 5 Il processo di KDD (1) Interpretation/ Evaluation Application Domain Prior Knowledge User’s Goals Knowledge Data Mining Patterns Transformation Preprocessing …… …… …… Selection Transformed Data Preprocessed Data Metadata Target Data Data 6 Il processo di KDD (2) 1) Sviluppo e approfondimento del dominio di applicazione, della conoscenza disponibile a priori e degli obiettivi dell'utente finale. 2) Creazione di un target data set: selezione del data set o focalizzazione su un sottoinsieme di variabili o di campioni di dati oggetto del processo KDD. 3) Cleaning dei dati e preprocessing: operazioni di base come la rimozione del rumore o degli outliers se è il caso, raccolta delle informazioni necessarie per modellare o tener conto del rumore, messa a punto di strategie per gestire i dati mancanti e per gestire i dati tempo-varianti. 4) Riduzione dei dati e proiezione: rappresentazione dei dati in modo opportuno in relazione agli obiettivi della ricerca. Riduzione delle dimensioni e impiego di metodi di trasformazione per ridurre l'effettivo numero di variabili da sottoporre al processo di ricerca. 7 Il processo di KDD (3) 5) Scelta del compito del processo di data mining: identificazione dell'obiettivo del KDD, se si tratti di una classificazione, di una regressione, di un clustering… 6) Scelta dell'algoritmo o degli algoritmi di data mining: selezione dei metodi da usare per ricercare pattern nei dati. Questa fase comprende la decisione su quali modelli e parametri potrebbero essere appropriati e il matching di un particolare metodo di data mining con i criteri generali del processo KDD (per es. l'utente finale potrebbe essere maggiormente interessato alla comprensione del modello piuttosto che alle sue capacità predittive). 8 Il processo di KDD (4) 7) Data mining: ricerca di pattern di interesse in una particolare forma di rappresentazione o su un set di rappresentazioni diverse (regole di classificazione, alberi decisionali, regressione, clustering…). Il risultato del processo di data mining è considerevolmente influenzato dalla correttezza delle fasi precedenti. 8) Interpretazione dei pattern trovati e possibile ritorno alle fasi 1-7 per ulteriori iterazioni. 9) Consolidamento della conoscenza estratta: incorporazione di tale conoscenza nel sistema di performance o, semplicemente, documentazione e reporting alle parti interessate. Questa fase include anche il controllo per la risoluzione di potenziali contraddizioni con la conoscenza precedentemente disponibile. 9 Data Mining - Introduzione I due principali obiettivi di alto livello del data mining sono la predizione e la descrizione. • La predizione implica l'uso di variabili o campi di un database per predire valori ignoti o futuri di altre variabili di interesse. • La descrizione si concentra invece sulla ricerca di pattern interpretabili che descrivano i dati. L'importanza relativa di predizione e descrizione nelle diverse applicazioni del data mining può variare considerevolmente. Nel contesto del KDD la descrizione tende ad essere più importante della predizione, mentre nelle applicazioni di pattern recognition e machine learning (per es. speech recognition) la predizione spesso costituisce l'obiettivo principale 10 Principali Funzioni del Data Mining (1) • Classificazione: consiste nell'apprendere una funzione che mappa (classifica) un elemento in una tra molte classi predefinite. • Regressione: consiste nell'apprendere una funzione che mappa un elemento in una variabile predittiva a valori reali. La classificazione si distingue dalla regressione per il tipo di output che fornisce. Con la classificazione, l’output predetto (l’appartenenza ad una classe) è di tipo categorico, cioè assume pochi valori, tipo “Si’” o “No”, oppure “Basso”, “Medio” o “Alto”. La regressione invece prevede come output un valore numerico che può assumere un numero illimitato (o almeno molto grande) di possibili valori. La classificazione costituisce, insieme alla regressione, il tipo di problema più comune a cui viene applicato il data mining. 11 Principali Funzioni del Data Mining (2) • Clustering: è un task a carattere tipicamente descrittivo in cui si cerca di identificare un numero finito di categorie o cluster per descrivere i dati. Tali categorie possono essere mutuamente esclusive ed esaustive oppure possono fornire una rappresentazione più ricca con categorie gerarchiche o parzialmente sovrapposte. • Aggregazione: le tecniche di aggregazione comprendono metodi per la ricerca di descrizioni compatte per sottoinsiemi di dati. Un esempio semplice potrebbe essere la tabulazione della media e della deviazione standard per tutti i campi. Metodi più sofisticati comprendono la derivazione di regole di aggregazione, le tecniche di visualizzazione e l'identificazione di relazioni funzionali tra le variabili 12 Principali Funzioni del Data Mining (3) • Dependency Modeling: consiste nella ricerca di un modello che descriva dipendenze significative tra le variabili. I modelli di dipendenza esistono a due livelli: il livello strutturale del modello specifica, spesso in forma grafica, quali variabili sono localmente dipendenti da altre, mentre il livello quantitativo del modello specifica la forza della dipendenza usando una qualche scala numerica. Per esempio, le reti di dipendenza probabilistica usano l'indipendenza condizionale per specificare l'aspetto strutturale del modello e le probabilità o la correlazione per specificare la forza della dipendenza 13 Clustering - Introduzione (1) • Partizionare un grande insieme di oggetti in clusters omogenei è un’operazione fondamentale in data mining • L’algoritmo cosiddetto k-means è molto adatto per svolgere quest’operazione poiché è efficiente • L’unico problema è che è di limitata applicabilità, in quanto tratta unicamente dati numerici • Vedremo brevemente l’algoritmo k-means e una sua estensione per dati categorici 14 Clustering - Introduzione (2) • L’operazione di clustering è necessaria per diverse funzioni del data mining tra cui la classificazione “unsupervised”, la segmentazione di grossi data set eterogenei in più piccoli sotto-insiemi omogenei che possono essere facilmente gestiti e analizzati separatamente • I metodi di clustering dividono un insieme di oggetti in clusters tali che gli oggetti nello stesso cluster sono più simili tra loro rispetto agli oggetti in cluster diversi secondo qualche criterio predefinito • I metodi statistici di clustering usano misure di similarità per partizionare gli oggetti, mentre metodi di clustering concettuale partizionano gli oggetti sulla base dei concetti associati agli oggetti • La caratteristica del data mining è che tratta grosse quantità di dati 15 Clustering - Introduzione (3) • La dimensione dei data set richiede che gli algoritmi usati siano scalabili • Spesso gli algoritmi correntemente usati nel data mining non offrono grande scalabilità in quanto sono stati originariamente sviluppati per applicazioni diverse che coinvolgevano data set più piccoli • Lo studio di algoritmi scalabili per il data mining è recentemente diventato un importante argomento di ricerca • Dopo una breve presentazione dell’algoritmo k-means, introdurremo la sua variante k-modes per trattare dati categorici • Confrontati con altri metodi di clustering, l’algoritmo k-means e le sue varianti mostrano efficienza anche applicati a grossi data set 16 Introduzione (4) • L’algoritmo k-means minimizza una funzione di costo calcolando i valori medi dei cluster e pertanto il suo impiego è limitato a valori numerici • Le applicazioni di data mining coinvolgono spesso dati categorici • L’approccio tradizionale di conversione di dati categorici in dati numerici non è sempre significativo (ad esempio quando i domini categorici non sono ordinati) • L’algoritmo k-modes elimina questo incoveniente ed estende il concetto dei k-means anche a dati categorici, preservando l’efficienza dell’algoritmo k-means • Esiste una versione più complessa dell’algoritmo k-modes che si chiama k-prototypes che tiene conto di attributi misti, categorici e non. 17 Introduzione (4) • L’algoritmo k-prototypes definisce una misura di dissimilarità mista per attributi categorici e numerici • Sia sn la dissimilarità per attributi numerici basata sul quadrato della distanza euclidea • Sia sc la dissimilarità per attributi categorici definita come il numero di categorie diverse tra due oggetti • Definiamo la misura di dissimilarità tra due oggetti come sn+ysc dove y è un peso per bilanciare le due parti ed evitare che un tipo di attributo sia più considerato dell’altro • Il processo di clustering dell’algoritmo k-prototypes è simile a k-means • Un problema è la scelta opportuna del peso y 18 Introduzione (5) • L’algoritmo k-modes è una semplificazione del metodo k-prototypes in quanto tiene conto solo degli attributi categorici • In questo caso non abbiamo più bisogno di definire un peso y • Nel caso in cui comparissero attributi numerici nel problema occorrerebbe renderli categorici • Il maggior vantaggio del metodo consiste nella sua grande scalabilità e pertanto nella possibilità di essere applicato a grandi data set • Un altro approccio è stato presentato per applicare l’algoritmo k-means a dati categorici previa conversione dei dati categorici in dati numerici • In questo metodo molteplici attributi categorici vengono trasformati in attributi binari (usando 0 o 1 per indicare se una categoria è assente o presente) 19 Introduzione (5) • Quindi gli attributi resi binari vengono considerati numerici e sottoposti all’algoritmo k-means • Se impiegato nel data mining, questo approccio richiede di gestire un numero molto grande di attributi binari, in quanto i data set impiegati nel data mining spesso hanno attributi categorici con centinaia o migliaia di categorie. • Questo aumenta inevitabilmente la complessità e il costo dell’algoritmo • Inoltre i cluster means, dati da valori reali tra 0 e 1 non indicano le caratteristiche del cluster • Per contro l’algoritmo k-modes lavora direttamente su attributi categorici e produce i cluster modes che descrivono i clusters e pertanto risutano utili nell’interpretazione dei risultati 20 Domini e Attributi Categorici (1) • Per dati categorici intendiamo dati che descrivono oggetti che hanno solo attributi categorici • Consideriamo che tutti gli attributi numerici siano inseriti in categorie • Siano A1, A2,…,Am m attributi che descrivono uno spazio S e DOM(A1), DOM(A2),…, DOM(Am) i domini degli attributi • Un dominio DOM(Aj) è definito categorico se è finito e non ordinato, per es., per ogni a,b∈ DOM(Aj) o a=b, o a≠b • Aj è chiamato attributo categorico • S è uno spazio categorico se tutti gli attributi A1, A2,…,Am che lo descrivono sono categorici • Un valore speciale, denotato con ε, è definito su tutti i domini categorici ed è usato per rappresentare valori mancanti 21 Domini e Attributi Categorici (2) • Per semplificare la misura di dissimilarità non consideriamo le relazioni di inclusione concettuale tra valori in un dominio categorico (ad esempio il fatto che automobile e veicolo sono due valori categorici in un dominio e concettualmente un automobile è anche un veicolo) 22 Oggetti Categorici (1) • Un oggetto categorico X∈S è logicamente rappresentato come una congiunzione di coppie attributo-valore [A1=x1] ∧ [A2=x2] ∧ … ∧ [Am=xm] dove xj ∈DOM(Aj) per 1 ≤ j ≤ m • Senza ambiguità rappresentiamo X come un vettore [x1, x2,…,xm] • Consideriamo che ogni oggetto in S abbia esattamente m attributi. Se il valore di un attributo Aj non è disponibile per un oggetto X, allora Aj= ε • Sia X = {X1, X2, ..., Xn} un insieme di n oggetti categorici e X⊆S • L’oggetto Xi e’ rappresentato come [xi1, xi2,…,xim] • Diciamo che Xi= Xk se xij= xkj per 1≤j ≤m • La relazione Xi= Xk non significa che Xi e Xk sono lo stesso oggetto 23 Oggetti Categorici (2) • Significa che i 2 oggetti hanno gli stessi valori categorici negli attributi A1, ... ,Am • Ad esempio 2 pazienti in 1 ospedale possono avere gli stessi valori negli attributi: Sesso, Malattia, Trattamento ma avere diverso Nome, Indirizzo, Eta’... che sono attributi non selezionati per il clustering • Supponiamo che X sia composto da n oggetti di cui p sono distinti • Sia N la cardinalita’ del prodotto cartesiano DOM(A1) x DOM(A2) x DOM(Am) • Abbiamo p ≤N mentre n puo’ essere maggiore di N, nel caso che contenga duplicati 24 Algoritmo k-means • L’algoritmo k-means e’ costruito su 4 operazioni di base: 1) selezione dei k valori medi iniziali per i cluster 2) calcolo della dissimilarita’ tra un oggetto e la media di un cluster 3) allocazione di un oggetto nel cluster la cui media e’ piu’ vicina all’oggetto 4) Ri-calcolo della media del cluster dagli oggetti allocati in esso in modo tale che la dissimilarita’ intra-cluster sia minimizzata • Tranne che la prima operazione, le altre 3 vengono ripetute fino a convergenza 25 Algoritmo k-means (2) • L’essenza dell’algoritmo e’ la minimizzazione della funzione di costo: k n E = ∑∑ yi ,l d ( X i ,Q l ) l =1 i =1 • dove n e’ il numero degli oggetti in un data set X, Xi∈X, Ql e’ la media del cluster l, e yi,l e’ un elemento di una matrice di partizione Ynxk, d e’ una misura di dissimilarita’ generalmente definita dal quadrato della distanza euclidea • Esistono diverse varianti dell’algoritmo che differiscono nella selezione iniziale dei centri dei cluster, nel calcolo della dissimilarita’ e nelle strategie per calcolare i centri dei cluster 26 Algoritmo k-means (3) • L’algoritmo k-means ha le seguenti importanti proprieta’: 1. E’ efficiente nel gestire grosse quantita’ di dati. La complessita’ computazionale dell’algoritmo e’ O(tkmn) dove m e’ il numero di attributi, n il numero di oggetti, k il numero dei cluster, e t e’ il numero di iterazioni sull’intero data set. In genere, k,m,t << n . 2. Spesso l’algoritmo termina in un ottimo locale. Per trovare l’ottimo globale possono essere adottate altre tecniche (deterministic annealing, algoritmi genetici) da incorporare al k-means 3. Funziona solo su valori numerici in quanto minimizza una funzione di costo calcolando la media dei clusters 4. I cluster hanno forma convessa. Pertanto e’ difficile usare il k-means per trovare cluster di forma non convessa 27 Algoritmo k-means (5) • Una difficolta’ consiste nel determinare il numero dei cluster • Alcune varianti dell’algoritmo includono una procedura per cercare il k ottimo • L’algoritmo k-means e’ il migliore per il data mining per la sua efficienza con i grossi data set • Purtroppo, funzionando solo per valori numerici, limita di molto la sua applicabilita’ • Discuteremo alcune modifiche all’algoritmo per renderlo adatto a valori categorici 28 Algoritmo k-modes (1) • L’algoritmo k-modes e’ una versione semplificata del k-prototypes • In questo algoritmo abbiamo 3 differenze principali rispetto al k-means: 1. Usa una diversa misura di dissimilarita’ 2. Sostituisce i k-means con i k-modes 3. Usa un metodo basato sulla frequenza per aggiornare i modes 29 Misure di dissimilarita’ (1) • Siano X e Y due oggetti categorici descritti da m attributi categorici • La misura di dissimilarita’ tra X e Y puo’ essere definita dal totale delle differenze tra le corrispondenti categorie di attributi dei due oggetti • Minore e’ il numero degli attributi diversi, piu’ i due oggetti sono simili • Formalmente: d ( X , Y ) = ∑ δ (x j , y j ) m j =1 0 δ (x j , y j ) = 1 (x (x j j (1) = yj) ≠ yj) 30 Misure di dissimilarita’ (2) • d(X,Y) da’ uguale importanza ad ogni categoria di un attributo • Se teniamo in conto le frequenze delle categorie in un data set, possiamo definire la misura di dissimilarita’ come: m d χ 2 ( X ,Y ) = ∑ j =1 (n xj + ny j nx j n y j )δ (x , y ) j j (2) • dove nx e ny sono il numero di oggetti nel data set che hanno le j j categorie xj e yj per l’attributo j. • d χ 2 ( X , Y ) si dice distanza chi-quadro 31 Misure di dissimilarita’ (3) • Questa seconda misura di dissimilarita’ da’ piu’ importanza alle categorie rare piuttosto che a quelle frequenti • Per questo viene usata per scoprire cluster di oggetti sotto-rappresentati come ad es. i richiami fraudolenti nei database delle assicurazioni 32 “Mode” di un set • Sia X un insieme di oggetti categorici descritti dagli attributi categorici A1, A2, ... , Am • Un “mode” di X e’ un vettore Q=[q1, q2, ... , qm]∈S che minimizza: n D (Q , X ) = ∑ d ( X i , Q ) i =1 • dove X={X1, X2, ..., Xn} e d possono essere definiti come nell’eq. (1) o nell’eq. (2). • Q non e’ necessariamente un elemento di X 33 Ricerca di un “Mode” per un set • Sia nck , jil numero di oggetti aventi la categoria fr ( Aj = ck , j | X ) = • la frequenza relativa della categoria ck , j nell’attributo Aj e nc k , j n ck , j in X • Teorema: la funzione D(Q,X) e’ minimizzata se e solo se: f r (Aj = q j | X ) ≥ f r (Aj = ckj | X ) per q j ≠ ck , j per ogni j = 1,..., m 34 L’algoritmo k-modes (1) • Sia {S1, S2, ..., Sk} una partizione di X, dove Sl ≠ Ø per 1 ≤ l ≤k e {Q1, ..., Qk} i modi di {S1, ..., Sk} • Il costo totale della partizione e’ definito da: k n E = ∑∑ yi ,l d ( X i , Ql ) l =1 i =1 • dove yi,l e’ un elemento di una matrice di partizione Ynx1 e d puo’ essere definito come in 1 o come in 2 • Similmente all’algoritmo k-means, l’obiettivo del clustering di X e’ trovare un set {Q1, Q2, ..., Qk} che minimizzi E. 35 L’algoritmo k-modes (2) • L’algoritmo k-modes consiste nei passi seguenti : 1. Scegliere k modi iniziali, uno per ogni cluster 2. Allocare un oggetto in un cluster il cui modo sia il piu’ vicino ad esso, secondo la definizione di d. Aggiornare il modo del cluster dopo ogni allocazione secondo il teorema 3. Dopo che tutti gli oggetti sono stati allocati nei cluster, ripetere il test della dissimilarita’ degli oggetti in relazione ai modi correnti. Se si trova che un oggetto e’ piu’ vicino al modo di un altro cluster piuttosto che al proprio corrente, riallocare l’oggetto in quel cluster e aggiornare i modi di entrambi 4. Ripetere il passo 3 finche’ nessun oggetto cambia cluster dopo un ciclo completo di test sull’intero data set 36 L’algoritmo k-modes (3) • Come l’algoritmo k-means, l’algoritmo k-modes produce soluzioni localmente ottime che sono dipendenti dai modi iniziali e dall’ordine degli oggetti nel data set • L’impiego di opportuni metodi di scelta dei modi iniziali, puo’ migliorare il risultato del clustering • Vediamo un metodo di selezione dei k modi iniziali. Il metodo si sviluppa nei seguenti passi: 1. Calcolare le frequenze di tutte le categorie per tutti gli attributi e immagazzinarli in un array di categorie in ordine discendente di frequenza come in Fig.1. Qui ci,j denota la categoria i dell’attributo j e f(ci,j)≥ f(ci+1,j) dove f(ci,j) e’ la frequenza della categoria ci,j 37 L’algoritmo k-modes (4) Fig.1 c1,1 c1, 2 c 2,1 c2, 2 c3,1 c4,1 c1,3 c2,3 c3,3 c4,3 c1, 4 c2, 4 c3, 4 • La figura mostra l’array di categorie per un data set con 4 attributi aventi rispettivamente 4, 2, 4, 3 categorie 2. Assegnare le categorie piu’ frequenti uniformemente ai k modi iniziali. Per l’esempio in Fig.1 assumiamo k=3. Assegnamo Q1=[q1,1=c1,1, q1,2=c2,2, q1,3=c3,3, q1,4=c1,4], Q2=[q2,1 =c2,1, q2,2 =c1,2, q2,3 =c4,3, q2,4 =c2,4], Q3=[q3,1 =c3,1, q3,2 =c2,2, q3,3 =c1,3, q3,4 =c3,4] 38 L’algoritmo k-modes (4) 3. Incominciamo con Q1. Scegliamo il record piu’ simile a Q1 e sostituiamo Q1 con il record come primo modo iniziale. Poi scegliamo il record piu’ simile a Q2 e sostituiamo Q2 con il record come secondo modo iniziale. Continuiamo questo processo fino alla sostituzione di Qk In queste selezioni Ql≠Qt per l ≠t Il passo 3 serve per evitare il caso di cluster vuoti. L’obiettivo di questo metodo di selezione e’ di rendere distanti i modi iniziali il che puo’ risultare in un miglior clustering. 39 Classificazione e Regressione - Introduzione (1) • Classificazione e regressione sono problemi a cui comunemente viene applicato il data mining • Tipicamente classificazione e regressione vengono usate come supporto decisionale nel marketing e nel CRM (previsione dei comportamenti di acquisto, identificazione dei target per promozioni, nuovi prodotti...) ma anche per l’identificazione di frodi, nella credit risk detection, in problemi di diagnostica medica... • Esistono diverse tecniche di data mining per affrontare problemi di classificazione e di regressione e generalmente ogni tecnica dispone di diversi algoritmi. Naturalmente queste tecniche producono modelli diversi ma in generale ogni tecnica genera un modello predittivo basato su dati storici che viene poi impiegato per predire l’uscita di nuovi casi. • Cio’ che distingue classificazione e regressione e’ il tipo di output che viene predetto 40 Classificazione e Regressione - Introduzione (2) • La classificazione individua l’appartenenza ad una classe. Per esempio un modello potrebbe predire che il potenziale cliente ‘X’ rispondera’ ad un’offerta. Con la classificazione l’output predetto (la classe) e’ categorico ossia puo’ assumere solo pochi possibili valori come Si’, No, Alto, Medio, Basso... • La regressione predice un valore numerico specifico. Ad esempio un modello potrebbe predire che il cliente X ci portera’ un profitto di Y lire nel corso di un determinato periodo di tempo. Le variabili in uscita possono assumere un numero illimitato (o comunque una grande quantita’) di valori. Spesso queste variabili in uscita sono indicate come continue anche se talvolta non lo sono nel senso matematico del termine (ad esempio l’eta’ di una persona) 41 Classificazione e Regressione - Introduzione (3) • Classificazione e regressione sono comunque strettamente correlate e spesso risulta semplice trasformare un problema di classificazione in una regressione e viceversa • In generale un problema di regressione viene trasformato in un problema di classificazione semplicemente raggruppando i valori continui predetti in categorie discrete, mentre un problema di classificazione viene trasformato in una regressione identificando un punteggio o probabilita’ per ogni categoria ed assegnando un range di punteggi ad ogni categoria • Nonostante esista la possibilita’ di convertire classificazione in regressione e viceversa e’ importante osservare che, a livello di strumenti, i risultati piu’ accurati si ottengono con il matching di tool e task 42 Tecniche di predictive modeling (1) • Esistono 4 tecniche che attualmente dominano il mercato degli strumenti per classificazione e regressione: 1) Decision Tree: e’ una tecnica che genera una rappresentazione grafica ad albero del modello che produce. Generalmente e’ accompagnata da regole della forma “IF condition THEN outcome” che costutuiscono la versione testuale del modello. Gli algoritmi di Decision Tree comunemente implementati comprendono Chisquared Automatic Interaction Detection (CHAID), Classification and Regression Trees (CART), C4.5 e C5.0. Tutti questi sono estremamente adatti alla classificazione, alcuni sono impiegabili anche per la regressione. 43 Tecniche di predictive modeling (2) 2) Neural networks: sono tra i piu’ complicati algoritmi di classificazione e regressione. Vengono usate comunemente nell’identificazione di frodi dove occorre un algoritmo che rilevi accuratamente ogni eccezione e che funzioni in tempo reale. Infatti, sebbene la fase di training di una rete neurale possa essere time consuming, una rete allenata puo’ effettuare previsioni su nuovi casi molto rapidamente. L’output di una rete neurale e’ puramente predittivo e spesso difficile da comprendere e da impiegare. Queste difficolta’ spesso scoraggiano l’uso di reti neurali nel supporto decisionale. 44 Tecniche di predictive modeling (3) 3) Naive-Bayes: e’ una tecnica di classificazione sia predittiva che descrittiva. Analizza la relazione tra ogni variabile indipendente e la variabile dipendente per derivare una probabilita’ condizionata per ogni relazione. Quando si analizza un nuovo caso, viene fatta una previsione combinando gli effetti delle variabili indipendenti sulle variabili dipendenti (l’uscita che viene predetta). Per esempio consideriamo il problema di cercare di predire il turnover dei clienti dove è noto che il 75% dei clienti con fatturazioni mensili tra $400 e $500 ha abbandonato e il 68% dei clienti che ha fatto più di 4 chiamate al customer service ha abbandonato. Applicando la tecnica a un cliente con fatturazione mensile di $480 e che ha fatto 5 chiamate al customer service, Naive Bayes predice che il cliente ha una alta probabilità di abbandono. 45 Tecniche di predictive modeling (3) In teoria i risultati sarebbero corretti solo se le variabili indipendenti fossero statisticamente indipendenti l’una dall’altra. Questo spesso non e’ vero ma la pratica dimostra che Naive Bayes fornisce buoni risultati e la sua semplicita’ e velocita’ ne fanno uno strumento ideale per modellare ed investigare relazioni semplici 46 Tecniche di predictive modeling (4) 4) K-nearest neighbor (K-NN): differisce dalle precedenti tecniche nel fatto che i dati di training non sono usati per creare il modello ma costituiscono essi stessi il modello. Quando si presenta un nuovo caso, l’algoritmo scandisce tutti i dati per trovare un sottoinsieme di casi che sono piu’ vicini ad esso e li usa per predire l’uscita. Ci sono due aspetti principali nell’algoritmo k-NN: il numero di casi piu’ vicini da usare (k) e la scelta di una metrica per misurare cosa si intende per ‘piu’ vicini’. Per classificare un nuovo caso, l’algoritmo calcola la distanza dal nuovo caso ad ogni caso nel training data. L’uscita prevista per il nuovo caso corrisponde all’uscita predominante nei k casi piu’ vicini del training set. 47 Tecniche di predictive modeling (5) Tutte le tecniche menzionate possono generare modelli predittivi. Alcune di esse forniscono anche modelli descrittivi che consentono di comprendere piu’ a fondo le relazioni tra i dati, indipendentemente dalla natura predittiva del modello. Ad esempio questa informazione potrebbe essere nella forma: “il guadagno e’ il fattore piu’ importante per determinare se qualcuno e’ a un buon livello di credit risk”. Tale informazione descrittiva puo’ essere presentata in forma testuale o attraverso tool di visualizzazione. 48 Esempi di classificazione lineare e non lineare Debito Debito “Prestito NON concesso” zona di “Prestito NON concesso” zona di “Prestito concesso” CLASSIFICAZIONE LINEARE “Prestito concesso” Introito NEAREST NEIGHBOR Debito x “Prestito NON concesso” x x x “Prestito concesso” RETI NEURALI Introito Introito 49 Decision Tree • I dati in input rappresentano il training set e sono costituiti da molteplici esempi (records), ognuno caratterizzato da diversi attributi (features) • Ogni esempio e’ caratterizzato dall’appartenenza ad una classe (class label) • Obiettivo della classificazione e’ di analizzare i dati in input e sviluppare un accurato modello per ogni classe tramite il quale sia possibile classificare i futuri dati di test per cui i class label sono ignoti • I decision tree sono relativamente veloci, confrontati con altri metodi di classificazione e sono di semplice interpretazione: essi possono facilmente essere convertiti in insiemi di regole di classificazione e in query SQL per accedere ai database 50 Esempio ETA’ SALARIO 30 65 B 23 15 C 40 75 B CLASSE ETA’<=35 SALARIO’<=40 C SALARIO’<=50 B C B 55 40 C 55 100 B Decision rule per la prima foglia a sin: 45 60 B IF eta’<=35 AND salario<=40 THEN classe=C 51 Decision Tree Classification • La maggior parte dei classificatori ad albero (es. CART, C 4.5) realizzano la classificazione in 2 fasi: Tree Building e Tree Pruning Tree Building: in questa fase si costruisce un primo decision tree partizionando ripetutamente i dati del training set. Il training set e’ suddiviso in due o piu’ partizioni usando un attributo (esistono algoritmi che usano anche attributi multipli). Questo processo viene ripetuto ricorsivamente finche’ tutti gli esempi in una partizione appartengono ad una classe. Tree Pruning: l’albero costruito nella prima fase classifica completamente il training data set. Questo implica che vengono creati rami anche per il rumore e le fluttuazioni statistiche. Questi rami possono condurre a errori nella classificazione dei dati di test. La fase di pruning ha l’obiettivo di rimuovere questi rami dal decision tree selezionando il sotto-albero con il minimo tasso di errore stimato 52 Tree Building Algorithm MakeTree (Training Data T) Partition (T); Partition (Data S) if (all points in S are in the same class) then return; Evaluate splits for each attribute A Use best split found to partition S into S1 and S2; Partition (S1); Partition (S2); 53 Tree Building Durante il Tree Buiding vengono svolte due operazioni principali: • Valutazione delle possibili suddivisioni dell’insieme per ogni attributo e scelta della migliore • Creazione delle partizioni usando la suddivisione migliore. Avendo determinato la suddivisione migliore, le partizioni possono essere create semplicemente applicando il criterio di suddivisione ai dati La complessita’ risiede nella determinazione della suddivisione migliore per ogni attributo. La scelta del criterio di splitting dipende dal dominio dell’attributo che puo’ essere numerico o categorico (attributi con un numero finito di possibili valori) 54 Splitting Index Un indice di splitting viene usato per valutare la bonta’ delle alternative possibili di suddivisione per un attributo. Esistono diverse possibilita’ per l’indice di splitting. Frequentemente si usa il gini index. Se un data set T contiene esempi da n classi, gini(T) e’ definito come: n gini (T ) = 1 − ∑ p 2j 1 dove pj e’ la frequenza relativa della classe j in T 55 Split per attributi numerici Per attributi numerici si usa uno split binario della forma A<=v dove v e’ un numero reale. Il primo passo per valutare le suddivisioni per attributi numerici consiste nell’ordinare i training examples sulla base del valore dell’attributo considerato per lo splitting. Siano v1, v2, ..., vn i valori ordinati di un attributo numerico A. Dal momento che ogni valore tra vi e vi+1 suddivide l’insieme negli stessi due sotto insiemi, abbiamo da esaminare solo n-1 possibili splits. Tipicamente si considera il punto medio di ogni intervallo vi - vi+1 come split point. Il costo della valutazione delle suddivisioni per attributi numerici e’ dominato dal costo di ordinamento dei valori. 56 Split per attributi categorici Se S(A) e’ l’insieme dei possibili valori di un attributo categorico A, allora lo A∈ S ' split test e’ della forma dove S'⊂ S Dal momento che il numero di possibili sottoinsiemi per un attributo con n possibili valori e’ 2n, la ricerca del miglior sottoinsieme puo’ essere onerosa. 57 Tree Pruning (1) La fase di tree pruning esamina l’albero costruito tramite il training set e sceglie il sotto-albero con il minimo errore stimato. Esistono due approcci principali alla stima del tasso di errore: uno impiega il training data set originale e l’altro usa un dataset indipendente per la stima dell’errore La Cross-Validation appartiene alla prima categoria. Diversi campioni sono estratti dai dati di training e per ogni campione si genera un albero. Questi alberi multipli sono poi usati per stimare il tasso di errore dei sotto-alberi dell’albero originale 58 Tree Pruning (2) La seconda classe di metodi divide i dati di training in due parti dove una parte viene usata per costruire l’albero e l’altra per fare il pruning. I problemi di questo metodo riguardano la scelta dei dati di test e la dimensione dell’insieme di test che va a scapito della dimensione del training set 59 Principali Funzioni del Data Mining (4) • Change and Deviation Detection: le tecniche di change and deviation detection hanno come obiettivo la scoperta dei cambiamenti più significativi nei dati rispetto a valori di norma o recentemente misurati . La ricerca di pattern in serie temporali di dati è l’esempio più frequente di questo tipo di funzione di data mining