Classification Salvatore Orlando Data Mining - S. Orlando 1 Classificazione Dati una collezione di dati (training set ) – Ciascun record contiene un insieme di attributi, uno dei quali è la classe di appartenenza. Trova un modello per l’attributo classe che diventa funzione degli altri attributi Obiettivo: trovare una funzione che assegni in modo accurato l’attributo classe a nuovi records non classificati. – Un test set è usato per determinare l’accuratezza del modello. – Di solito il dataset iniziale è suddiviso in training e test sets: costruiamo il modello con il training set, e usiamo il test set per validarlo. Data Mining - S. Orlando 2 Esempio di classificazione Test Set Training Set Learn Classifier Model Cheat = truffatore,imbroglione Data Mining - S. Orlando 3 Classificazione vs. Clustering Supervised learning (classification) – Supervisione: I dati del training set (osservazioni, misure, etc.) sono stati preventivamente associati a etichette che indicano la classe di appartenenza • conoscenza supervisionata – I nuovi record di dati sono segmentati assegnando etichette di classe ai vari record, usando il modello costruito sulla base del training set Unsupervised learning (clustering) – L’etichetta della classe è sconosciuta – Dati un insieme di misure, osservazioni, ecc. lo scopo del clustering è quello di segmentare i dati, ovvero di stabilire l’esistenza di gruppi/ classi omogenei nei dati • Imparare l’esistenza di un qualche modello presente nei dati, che dà luogo ad una suddivisione dei dati, senza conoscenza precedente Data Mining - S. Orlando 4 Tecniche di classificazione Metodi basati sugli Alberi di Decisione (Decision Tree) Metodi Rule-based Memory-based reasoning Neural Networks Genetic Algorithms Naïve Bayes Support Vector Machines Data Mining - S. Orlando 5 Classificazione basata su Decision Tree I modelli di classificazione basati su Decision Tree sono considerati tra i migliori – – – – Non costosi da costruire Facili da interpretare Facili da integrare con le basi di dati Buona accuratezza in molte applicazioni, anche in confronto ad altri metodi di classificazione Data Mining - S. Orlando 6 Decision tree Decision Tree – Un struttura ad albero che somiglia ad un flow-chart – Ogni nodo interno denota un test su un attributo • Gli archi uscenti rappresentano i risultati del test – Ogni nodo foglia rappresenta un’etichetta di classe o la distribuzione delle varie classi Uso di un Decision Tree – Per classificare un nuovo dato campione sulla base degli attributi • ovvero per assegnare un’etichetta di classe al nuovo dato – Effettua i test sui valori degli attributi del campione rispetto ai test presenti nel decision tree • A partire dalla radice, e sulla base degli attributi del campione da classificare, segue un cammino fino ad una foglia • L’etichetta della foglia definisce la classe di appartenenza del campione Data Mining - S. Orlando 7 Esempio di albero di classificazione Splitting Attributes Refund Yes No NO MarSt Single, Divorced Married TaxInc < 80K NO NO > 80K YES Data Mining - S. Orlando 8 Un altro albero di classificazione Married MarSt? NO Single, Divorced Refund? No Yes NO TaxInc? < 80K NO > 80K YES Si possono derivare più alberi dagli stessi dati! Data Mining - S. Orlando 9 Un altro esempio age? <=30 >40 31..40 YES student? credit rating? no yes excellent NO YES NO fair YES Data Mining - S. Orlando 10 Algoritmo per Decision Tree Induction Algoritmo di base (metodo greedy) – L’albero è costruito in modo: • top-down - ricorsivo - divide-and-conquer – All’inizio tutti gli esempi di training sono in corrispondenza della radice – Gli esempi di training sono partizionati ricorsivamente sulla base degli attributi selezionati – Gli attributi di test sono selezionati in base ad un’euristica o a misure statistiche (es., gini index, information gain) • Scopo: suddividere gli esempi creando partizioni omogenee • Esistono metodi che funzionano su attributi di test categorici e/o su attributi numerici Condizioni per stoppare il partizionamento – Tutti gli esempi di una partizione in una stessa classe – Non abbiamo più attributi sulla cui base partizionare ulteriormente – usiamo una tecnica di majority voting per classificare la foglia Data Mining - S. Orlando 11 Come effettuare lo splitting: attributi nominali Ciascuna partizione è caratterizzato da un sottoinsieme di valori. Multi-way split: Usa tanti ramificazioni dello split quanti sono i valori distinti. CarType Family Luxury Sports Binary split: Divisi i valori in due sottoinsiemi. Bisogna individuare un partizionamento ottimale. {Sports, Luxury} CarType {Family} oppure {Family, Luxury} CarType {Sports} Data Mining - S. Orlando 12 Come effettuare lo splitting: attributi ordinali Ciascuna partizione è caratterizzato da un sottoinsieme di valori. Multi-way split: Usa tanti ramificazioni dello split quanti sono i valori distinti. Size Small Medium Large Binary split: Divisi i valori in due sottoinsiemi. Bisogna individuare un partizionamento ottimale. {Small, Medium} Size {Large} Questo partizionamento potrebbe essere possibile? oppure {Small, Large} {Medium, Large} Size {Small} Size {Medium} Data Mining - S. Orlando 13 Come effettuare lo splitting: attributi numerici Metodi differenti – Binary Decision: (A < v) or (A ≥ v) • considera tutti i possibili split e individua il miglior taglio • Può risultare molto costo computazionalmente, anche se esistono dei metodi basati sull’ordinamento – Discretizzazione per formare un attributo categorico (ordinale) • La scala di variazione dell’attributo viene suddiviso in N intervalli, ciascuno associato ad un attributo ordinale • Trasforma il data set, assegnando ad ogni valore dell’attributo continuo l’intervallo in cui esso valore cade • Statico – discretizzato a priori prima della trasformazione • Dinamico – le suddivisioni possono essere trovati tramite equal interval partitioning, equal frequency partitioning, o distance-based clustering. Data Mining - S. Orlando 14 Discretizzazione Equal-width (distance) partitioning: – Dividi la scala di variazione dell’attributo in N intervalli identici – Se A e B sono il più piccolo e il più grande valore di un attributo, la larghezza degli intervalli sarà: W = (B-A)/N. – E’ il metodo più semplice, ma gli outlier (o dati non ben distribuiti) possono dare problemi al metodo di discretizzazione Equal-depth (frequency) partitioning: – Dividi la scala di variazione dell’attributo in N intervalli, ciascuno contenente approssimativamente lo stesso numero di campioni – Buon metodo Cluster analysis partitioning: – Può risultare costoso Data Mining - S. Orlando 15 Discretizzazione Dati con 2 attributi X, Y continui Discretizzazione di X Data Equal frequency Equal interval width K-means (clustering) Data Mining - S. Orlando 16 Criterio di splitting Come scegliere l’attributo e il relativo splitting? – uso di particolari indici di dispersione dei valori dell’attributo categorico di classe Gini index (algoritmo di IBM IntelligentMiner, CART, SLIQ, SPRINT) Information gain (algoritmi ID3/C4.5) Data Mining - S. Orlando 17 Gini index In corrispondenza di un certo nodo t dell’albero in costruzione, e rispetto alla corrispondente partizione del dataset di training, possiamo definire il Gini Index: GINI(t) = 1− ∑[ p( j | t)]2 j (NOTA: p( j | t) è la frequenza relativa della classe j al nodo t). – Misura l’impurità/disordine del dataset corrispondente a t. € • Massimo valore (1 - 1/nc) quando i record sono equamente distribuiti tra tutte le classi ⇒ informazione meno interessante • Minimo valore (0.0) quando tutti i record appartengono ad una sola classe ⇒ informazione più interessante Data Mining - S. Orlando 18 Gini Una sola classe: – 1 - 12 = 0 nc classi equiprobabili: – 1 - \sum ((n / nc) / n)2 = 1 - \sum (1 / nc)2 = 1 – nc (1 / nc)2 = 1 – 1 / nc Data Mining - S. Orlando 19 Esempi relativi a Gini Index GINI(t) = 1− ∑[ p( j | t)]2 j P(C1) = 0/6 = 0 € P(C2) = 6/6 = 1 Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0 P(C1) = 1/6 P(C2) = 5/6 Gini = 1 – (1/6)2 – (5/6)2 = 0.278 P(C1) = 2/6 P(C2) = 4/6 Gini = 1 – (2/6)2 – (4/6)2 = 0.444 Data Mining - S. Orlando 20 Uso del GINI Index Criterio di Splitting: Minimizza il Gini Index della suddivisione. Quando un nodo t è suddiviso in k partizioni (figli), la qualità della suddivisione è calcolata come: k GINIsplit ni = ∑ GINI(i) i=1 n dove, ni = numero di record della partizione (figlio) i, n = numero di record del dataset al nodo t. € ni /n costituisce il peso dei vari GINI(i) Dato il dataset associato al nodo t, si sceglie l’attributo che fornisce il più piccolo GINIsplit(t) per partizionare il dataset – È necessario enumerare tutti i possibili punti di splitting per ciascun attributo Data Mining - S. Orlando 21 Calcolare il GINI Index per attributi binari Suddivisione in due partizioni Si cercano partizioni più grandi e più pure possibili. B? Yes Node N1 No Node N2 Data Mining - S. Orlando 22 Calcolare il GINI Index per attributi categorici Per ciascuna classe nel dataset, conta il numero dei valori differenti per ogni attributo – computa le singole righe delle matrici di conteggio Usa la matrice dei conteggi per prendere le decisioni Multi-way split Two-way split (bisogna trovare il migliore partizionamento dei valori) Data Mining - S. Orlando 23 Calcolare il GINI Index per attributi continui Solitamente si usa Binary Decision, basato su un singolo valore di splitting – Non abbiamo bisogno di discretizzare Sono possibili scelte diverse per il valore di splitting – Es.: Numero di possibili valori di splitting = Numero di valori distinti assunti dall’attributo Per ciascun valore di splitting abbiamo una matrice di conteggi associata – Conteggio delle varie classi per ciascuna partizione, (A < v) e (A ≥ v) Metodo naive per scegliere il miglior v – Per ciascun v, scandisci il database per raccogliere la matrice dei conteggi e computare il corrispondente Gini Index (GINIsplit) – Questo metodo è computazionalmente inefficiente! Lavoro ridondante. Data Mining - S. Orlando 24 Calcolare il GINI Index per attributi continui (2) Metodo per migliorare l’efficienza Per ciascun attributo – Ordina rispetto ai valori degli attributi – Scandisci linearmente questi valori, aggiornando ogni volta la matrice dei conteggi necessario per calcolare il GINI index • considera che, quando spostiamo il pivot, abbiamo un singolo elemento (appartenente ad una certa classe) che passa da una partizione all’altra • +/- 1 in una particolare riga – Scegli le posizioni di split che hanno il GINI index minore Sorted Values Split Positions Data Mining - S. Orlando 25 Criterio di splitting alternativo: Information Gain In corrispondenza di un certo nodo t dell’albero in costruzione, e rispetto alla corrispondente partizione del dataset di training, possiamo definire l’Information Gain: Entropy(t) = −∑ p( j | t)log p( j | t) j (NOTA: p( j | t) è la frequenza relativa della classe j al nodo t). € – Misura l’omogeneità/ordine di un nodo. • Massimo (log nc) quando i record sono equamente distribuiti tra tutte le classi ⇒ implica meno informazione • Minimo valore (0.0) quando tutti i record appartengono ad una sola classe ⇒ implica più informazione – I calcoli basati sulla misura dell’Entropia sono simili a quelle basate sul GINI index Data Mining - S. Orlando 26 Entropy Una sola classe: - (1 * log 1) = 0 nc classi equiprobabili: - (\sum ( (n / nc) / n) * log ((n / nc) / n) ) = = - ( \sum ( (1 / nc) * log (1 / nc) ) = = - nc * (1 / nc) * log (1 / nc) = = - log (1 / nc) = - (log 1 - log nc) = log nc Data Mining - S. Orlando 27 Esempi relativi all’Information Gain (Entropia) Entropy(t) = −∑ p( j | t)log 2 p( j | t) j P(C1) = 0/6 = 0 € P(C2) = 6/6 = 1 Entropy = – 0 log 0 – 1 log 1 = – 0 – 0 = 0 P(C1) = 1/6 P(C2) = 5/6 Entropy = – (1/6) log2 (1/6) – (5/6) log2 (1/6) = 0.65 P(C1) = 2/6 P(C2) = 4/6 Entropy = – (2/6) log2 (2/6) – (4/6) log2 (4/6) = 0.92 Data Mining - S. Orlando 28 Uso dell’Entropia come criterio di splitting Quando un nodo t è suddiviso in k partizioni (figli), la qualità della suddivisione è calcolata come IG (Information Gain): GAIN split k n = Entropy(t) − ∑ i Entropy(i) i=1 n dove, ni = numero di record della partizione (figlio) i, n = numero di record del dataset al nodo t. € ni /n costituisce il peso dei vari Entropy(i) Misura la riduzione nell’Entropia in conseguenza dello split. Scegli lo split che raggiunge la riduzione maggiore (massimizza il GAIN) Usato in ID3 e C4.5 Data Mining - S. Orlando 29 Problemi legati all’Information Gain Svantaggio: – l’IG tende a preferire suddivisioni che producono molte partizioni, piccole ma pure (ovvero che comprendono elementi appartenenti ad una singola classe). Si rischia di costruire un albero overfitted rispetto al training set Gain Ratio: GainRATIOsplit GAIN Split = SplitINFO k SplitINFO = −∑ i=1 ni n log i n n Il nodo padre, è suddiviso in k partizioni ni è il numero di record della partizione i € € – Corregge l’Information Gain dello split usando l’entropia del partizionamento (SplitINFO). – Valori alti di SplitINFO all’aumento del numero di piccole partizioni bilanciate! ⇒ l’aumento di SplitINFO penalizza Gain Ratio – Usato in C4.5 Data Mining - S. Orlando 30 Algoritmo C4.5 - like Data Mining - S. Orlando 31 Decision Tree: Web Mining Application Prima di applicare tecniche di Web Mining, es.: per sintetizzare un Web recommender, dobbiamo pulire l’user log – dobbiamo distinguere tra accessi fatto da umani e da robot/crawler, per poter poi rimuovere i secondi in modo automatico Nel log di sopra ogni linea è un accesso, e i vari accessi sono segmentati rispetto all’utente (IP address) – nota Requested e Referrer/From page Data Mining - S. Orlando 32 Decision Tree: Web Mining Application Ogni sessione è un grafo diretto – nodi: pagine – archi” hyperlink Data Mining - S. Orlando 33 Decision Tree: Web Mining Application depth breadth Grafo della sessione 1 Data Mining - S. Orlando 34 Decision Tree: Web Mining Application Estrazione di feature caratterizzanti le varie sessioni Data Mining - S. Orlando 35 Decision Tree: Web Mining Application Costruzione di un dataset (Web log) supervisionato – 2916 record – 50% classe 1 (Web Robot) – 50% classe 0 (Human users) 10% training dataset 90% test dataset Costruzione di un decision tree per poter classificare le sessioni, e rimuovere le sessioni generate dai robot Data Mining - S. Orlando 36 Decision Tree: Web Mining Application I robot fanno ricerche con “breadth” grandi e “depth” piccolo Gli utenti umani fanno ricerche con “breadth” piccolo e “depth” più grandi – navigazioni focalizzate e profonde I robot non scaricano le immagini Le sessioni dei robot sono molto lunghe rispetto a quelle degli umani I robot ripetono le richieste quando seguono i link per tornare indietro, mentre gli umani non lo fanno grazie alla cache dei browser Data Mining - S. Orlando 37 Decision Boundary Le linee di confine tra due regioni vicine create dal classificatore sono anche chiamate decision boundary Nei decision tree le decision boundary sono parallele agli assi Ogni test condition coinvolge un singolo attributo alla volta Data Mining - S. Orlando 38 Oblique Decision Trees x+y<1 Class = + Class = Difficile derivare un decision tree accurato dal training set sopra illustrato Possibile soluzione Condizioni di test che coinvolgono attributi multipli Aumenta la complessità per individuare il test ottimo Data Mining - S. Orlando 39 Overfitting L’albero può overfit-are i dati di training – Troppi rami, alcuni dei quali possono riflettere anomalie dovuti a rumori o outlier – Poca accuratezza (troppi errori) per campioni non visti (test dataset) L’overfitting è un problema comune a tutti i classificatori, non è solo un problema dell’albero di decisione Overfitting Generalized Errors Training/Apparent Errors Data Mining - S. Orlando 40 Overfitting: Pre-Pruning Pre-Pruning (Early Stopping Rule) – Stop dell’algoritmo prima che esso produca un albero fullygrown – Le tipiche condizioni di stopping: • Stop se tutte le istanze appartengono alla stessa classe • Stop se tutti i valori degli attributi hanno lo stesso valore – Condizioni più restrittive per il pruning: • Stop se il numero di istanze è minore di uno user-specified threshold – Evita la creazione di piccole partizioni – Difficile trovare il threshold • Stop se espandendo il nodo corrente non miglioriamo la misura di impurità (es., Gini o Information Gain). Data Mining - S. Orlando 41 Overfitting: Post-Pruning Post-Pruning – Rimuovi nodi/rami da un albero completo (“fully grown” tree) • Elimina i nodi in modo bottom-up • Un sottoalbero può essere sostituito con – un nodo foglia (subtree replacement) – il cammino più frequentemente scelto (subtree raising) – Usa un insieme di dati differenti dal training data (testing data) per decidere qual è il “best pruned tree” – Se l’errore sui dati di testing migliora dopo la sostituzione del sotto-albero con un nodo foglia • Sostituisci in maniera permanente, generando un albero pruned • L’etichetta di classe da assegnare al nuovo nodo foglia è determinato dalla classe maggioritaria nel sotto albero Data Mining - S. Orlando 42 Overfitting: Post-Pruning Data Mining - S. Orlando 43 Presentation: decisiontree Data Mining - S. Orlando 44 Presentation: decisiontree Data Mining - S. Orlando 45 Estrarre regole di classificazione da alberi Rappresenta la conoscenza nella forma di regole IFTHEN – Una regola per ogni cammino dalla radice ad una foglia – Ciascuna coppia attributo-valore lungo un cammino forma una congiunzione – Il nodo foglia restituisce la predizione della classe per la regola estratta Le regole sono più facili da capire Esempi IF age = “<=30” AND student = “no” THEN buys_computer = “no” IF age = “<=30” AND student = “yes” THEN buys_computer = “yes” IF age = “31…40” THEN buys_computer = “yes” IF age = “>40” AND credit_rating = “excellent” THEN buys_computer = “yes” IF age = “>40” AND credit_rating = “fair” THEN buys_computer = “no” Data Mining - S. Orlando 46 Le regole possono essere semplificate In generale le regole sono – mutuamente esclusive ed esaustive Ma possiamo fare del pruning: – semplificare o eliminare Regola iniziale: – (Refund=No) ∧ (Status=Married) → No Regola semplificata – (Status=Married) → No Problemi: – le regole non sono più mutuamente esclusive ed esaustive – aggiungi una regola di default – dai un punteggio ad ogni regola Data Mining - S. Orlando 47 Bayesian Classification: Perchè? Incremental: Ogni nuova osservazione può essere usata per migliorare la conoscenza pregressa ed aggiornare il modello. Probabilistic: Può elaborare e produrre diverse ipotesi con delle probabilità associate. Standard: Generalmente sono un punto di riferimento per valutare nuovi algoritmi Data Mining - S. Orlando 48 Classificatori Bayesiano Metodo probabilistico (Bayesian) per risolvere il problema della classificazione C Probabilità condizionali: A Teorema di Bayes : Data Mining - S. Orlando 49 Esempio di applicazione del teorema di Bayes Conoscenza pregressa: – Un dottore sa che la meningite causa rigidità del collo per il 50% dei casi • P(rigidità del collo | meningite) = 1/2 – La probabilità incondizionata che un paziente possa avere la meningite è • P(meningite) = 1/50000 = 0,00002 – La probabilità incondizionata che un paziente possa avere rigidità del collo è • P(rigidità del collo) = 1/20 = 0,05 Se un paziente ha rigidità del collo, qual è la probabilità che egli abbia la meningite? Data Mining - S. Orlando 50 Classificatori Bayesiano Considera i vari attributi e l’etichetta della classe come variabili casuali Dato un record R contenente gli attributi (A1, A2,…,An) – Lo scopo è predire la classe C di R – Più specificatamente, vogliamo trovare il valore di C che massimizza: P(C| A1, A2,…,An ) Possiamo stimare P(C| A1, A2,…,An ) direttamente dai dati? Data Mining - S. Orlando 51 Classificatori Bayesiano P(A1 A2 … An | C)P(C) P(C | A1 A2 … An ) = P(A1 A2 … An ) € Data Mining - S. Orlando 52 Classificatore Naïve Bayes P(A1 A2 … An | Cj)P(Cj) P(Cj | A1 A2 … An ) = P(A1 A2 … An ) € Data Mining - S. Orlando 53 Come stimiamo la probabilità dai dati? Probabilità delle Classi: – P(C) = Nc/N – dove Nc è il numero di istanze che appartengono alla classe C – Es., P(No) = 7/10, P(Yes) = 3/10 Per attributi discreti: – P(Ai | Ck) = |Aik| / Nck – dove |Aik| è il numero di istanze che hanno l’attributo Ai e appartengono alla classe Ck – dove Nck è il numero di istanze che appartengono alla classe Ck – Esempi: P(Married | No) = 4/7 P(Refund=Yes | Yes)=0 Data Mining - S. Orlando 54 Come stimiamo la probabilità dai dati? Per attributi continui: – Abbiamo bisogno di conoscere la probabilità condizionale P(Ai|C) • nota che il particolare valore dell’attributo continuo Ai potrebbe non essere presente nel dataset di training – Assumiamo che gli attributi obbediscono a certe distribuzioni di probabilità • Tipicamente, si assume la distribuzione normale • Si usano i dati per stimare i parametri della distribuzione di probabilità (ovvero, media e varianza) • Una volta che la distribuzione di probabilità è nota, possiamo usarla per stimare la probabilità condizionale P(Ai|C) Data Mining - S. Orlando 55 Come stimiamo le probabilità dai dati? Distribuzione normale: – Una per ciascuna coppia (Ai,cj) Per (Income, Class=No): – Se Class=No = 110 • σ2ij (varianza nel campione) = 2975 • µij (media nel campione) Data Mining - S. Orlando 56 Esempio di classificatore Naïve Bayes Dato il seguente test: P(Refund=Yes|No) = 3/7 P(Refund=No|No) = 4/7 P(Refund=Yes|Yes) = 0 P(Refund=No|Yes) = 1 P(Marital Status=Single|No) = 2/7 P(Marital Status=Divorced|No) = 1/7 P(Marital Status=Married|No) = 4/7 P(Marital Status=Single|Yes) = 2/3 P(Marital Status=Divorced|Yes) = 1/3 P(Marital Status=Married|Yes) = 0 Per Income: Se No: Se Yes: media = 110 varianza = 2975 media = 90 varianza = 25 P(X|Class=No) = P(Refund=No| Class=No) × P(Married| Class=No) × P(Income=120K| Class=No) = 4/7 × 4/7 × 0.0072 = 0.0024 P(X|Class=No) × P(No) = 0.0024 × 0.7 = 0.00168 P(X|Class=Yes) = P(Refund=No| Class=Yes) × P(Married| Class=Yes) × P(Income=120K| Class=Yes) = 1 × 0 × 1.2 × 10-9 = 0 P(X|Class=Yes) × P(Yes) = 0.0 × 0.3 = 0.0 Poiché P(X|No)P(No) > P(X|Yes)P(Yes) abbiamo che: P(No|X) > P(Yes|X) => Class = No Data Mining - S. Orlando 57 Esempio di classificatore Naïve Bayes Test sugli attributi: A: attributes M: mammals Non-M: non-mammals P(A|M)P(M) > P(A|N)P(N) => Mammals Data Mining - S. Orlando 58 Classificatore Naïve Bayes: sommario Robusto rispetto al rumore Gestisce i valori mancanti ignorando le istanze durante il calcolo della stima di probabilità Purtroppo l’assunzione di indipendenza può non essere valida per qualche attributo Per superare queste limitazioni: – Bayesian networks, che combinano ragionamenti Bayesiani con relazioni di causalità tra gli attributi – Alberi di decisione, che ragionano su un attributo alla volta, considerando gli attributi più importanti per primi Data Mining - S. Orlando 59 Classificatori Instance-Based • Memorizza le istanze di training => “Ritarda” nella costruzione del modello (lazy learner) • Usa le istanze di training per predire l’etichetta di classe di nuovi casi non visti • Approcci Tipici • k-nearest neighbor • Locally weighted regression • Case-based reasoning Data Mining - S. Orlando 60 K-nearest neighbor Istanze come vettori a n dimensioni, ad esempio punti nel piano euclideo – attributi continui Richiede tre cose: – L’insieme di istanze memorizzate – Metrica di Distanza – Il valore di k, il numero di vicini “nearest” da estrarre dall’insieme delle istanze Per la classificazione: – Estrai i k nearest neighbors – Usa le etichette di classe dei nearest neighbors per determinare l’etichetta di classe dell’istanza non vista (es., attraverso il voto a maggioranza) Data Mining - S. Orlando 61 K-nearest neighbor I K-nearest neighbors di un’istanza x sono i punti che hanno le K più piccole distanze da x Data Mining - S. Orlando 62 1 nearest-neighbor Voronoi Diagram A causa del costo della classificazione, è necessario indicizzare/precomputare informazioni per velocizzare il calcolo dei K vicini più prossimi Data Mining - S. Orlando 63 Classificatore K-nearest neighbor Calcola la distanza tra due punti: – Distanza Euclidea Distanza per pesare i voti dei k vicini – fattore di peso, w = 1/d2 – pesa il voto in accordo alla distanza Data Mining - S. Orlando 64 Classificatore K-nearest neighbor ……… Scegliere il valore di k: – Se k è troppo piccolo, il classificatore è sensibile al rumore – Se k è troppo grande, • costoso dal punto di vista computazionale • la cerchia dei vicini può includere punti appartenenti ad altre classi, e può portare a errori di classificazione Data Mining - S. Orlando 65 Case-Based Reasoning Anche questo metodo usa: lazy evaluation + analisi delle istanze più simili Differenza: Le istanze non sono “punti in uno spazio Euclideo” Metodologia – Le istanze/casi sono rappresentate da una ricca descrizione simbolica (es., grafi, funzioni) – Un case-based reasoner prima cerca di capire se esiste un caso di training identico al nuovo caso da classificare => classificazione OK – Se questo caso uguale non esiste, si cercano casi di training “vicini”, ovvero con componenti simili a quelli del nuovo caso • Es.: se i casi sono rappresentati come grafi, si cercano sottografi comuni Problemi – Trovare una buona misura di similarità (es. per il matching tra grafi) – Metodi di indicizzazione per velocizzare la ricerca di casi simili Data Mining - S. Orlando 66 Lazy (pigro) vs. eager (impaziente) evaluation Instance-based learning: lazy evaluation Decision-tree and Bayesian classification: eager evaluation Differenze più importanti – I metodi lazy considerano l’istanza della query q da classificare assieme alla decisione sulla generalizzazione rispetto al dataset D di training – I metodi eager non possono farlo, poiché nel momento in cui vedono la query q hanno già scelto approssimazioni globali per costruire il modello Efficienza: i metodi lazy impiegano meno tempo per il training, ma più tempo per predire la classe Accuratezza – I metodi lazy: usano efficientemente uno spazio di ipotesi più ricco ritagliato sulla query q – I metodi eager: devono convergere da subito ad una ipotesi singola che copre l’intero spazio delle istanze di training Data Mining - S. Orlando 67 Metriche per valutare i classificatori Siamo interessati alle prestazioni dei classificatori – rispetto alla capacità predittiva del modello – possibile tradeoff rispetto alla velocità dell’algoritmo Confusion Matrix: PREDICTED CLASS Class=Yes Class=No a: TP (true positive) ACTUAL CLASS Class=Yes a b Class=No c d b: FN (false negative) c: FP (false positive) d: TN (true negative) Conteggi: a, b, c, e d anche esprimibili in percentuale Data Mining - S. Orlando 68 Metriche per valutare i classificatori PREDICTED CLASS Class=Yes ACTUAL CLASS Class=No Class=Yes a (TP) b (FN) Class=No c (FP) d (TN) Metrica più usata: Error Rate = 1 - Accuracy Data Mining - S. Orlando 69 Problemi con lo sbilanciamento delle classi Se il problema non è bilanciato P(Class=Y) molto diverso da P(Class=N) Accuracy non è una misura adeguata o obiettiva Esempio: – – – – Class=Yes transazione di carta di credito fraudolenta solo l’1% delle transazioni di carte di credito sono fraudolente il 99% sono quindi lecite ! un modello che classifica tutte le transazioni come legittime (Class=No) ha un’accuratezza dello 0.99 !!! – ma il modello è cattivo ⇒ ha un rate di FN dell’1%, ma questo 1% include TUTTE le transazioni fraudolente a cui siamo interessati PREDICTED CLASS Class=Yes ACTUAL CLASS Class=No Class=Yes 0% (TP) 1% (FN) Class=No 0% (FP) 99% (TN) Data Mining - S. Orlando 70 Altre misure Necessarie misure che considerano le classi rare più interessanti Nella classificazione binaria, di solito la classe rara = positiva True positive rate (TPR) o sensibilità – TPR = TP / (TP + FN) (esempio TPR=0) – frazione di veri positivi individuati, rispetto a tutti i positivi True negative rate (TNR) o specificità – TNR = TN / (TN + FP) (esempio TNR=99/99=1) – frazione di veri negativi individuati, rispetto a tutti i negativi Recall e Precision – misure tipiche dell’Information Retrieval Recall: r = TP / (TP + FN) Precision: p = TP / (TP + FP) sensibilità in IR la quantità TP+FP corrisponde ai documenti ritenuti rilevanti e ritornati dal motore di ricerca Data Mining - S. Orlando 71 Metodi di valutazione dei classificatori Vogliamo valutare la bontà di un algoritmo di classificazione – Quanto è accurato nel predire la classe di un nuovo campione? Continuare ad usare il training set per valutare l’accuratezza di un algoritmo di classificazione può generare errori – Stime troppo ottimistiche – I modelli ottenuti sono super specializzati rispetto ai dati di training (overfitting) – Holdout è il metodo più comune per evitare stime sbagliate Holdout – Usa 2/3 del dataset classificato per il training, e 1/3 per il testing – Problemi dovuti alla riduzione degli esempi per il training, e al fatto che training e test sono sottoinsiemi dello stesso dataset Data Mining - S. Orlando 72 Metodi di valutazione Random subsampling – Holdout ripetuto – Ad ogni iterazione, una certa proporzione è selezionata in modo random per il set training, il resto dei dati è usato per il testing – acci : accuratezza del modello all’iterazione i-esima – accsub = Σi=1,k acci/k – Holdout ripetuto ancora non ottimo: overlapping tra i set di test Cross validation – Partiziona il dataset in k sottoinsiemi disgiunti – Stesso record usato lo stesso numero di volte per il training, e una sola volta per il testing – k-fold: allena su k-1 partizioni, e testa sulla partizione rimanente • Valore tipico per k nel k-fold è 10 – Leave-one-out: Cross-validation con k=N Bootstrap – Training: Sampling with replacement – Lo stesso record può apparire più volte nel training dataset – Dati N record, un training costituito da N record contiene circa il 63.2% dei record originali – Test set = record non selezionati – Ripetuto b volte Data Mining - S. Orlando 73 Ensemble methods Ensemble methods: – l’unione fa la forza – uso una combinazione di modelli Bagging Boosting Data Mining - S. Orlando 74 Bagging Bootstrap aggregation eseguo k bootstrap sample dal dataset da ognuno creo un classificatore per classificare un oggetto mai visto prima – raccolgo le previsioni di ciascun classificatore – prendo per buona quella più popolare Ha sempre una accuratezza migliore di un classificatore standard Motivazione: – riduce la varianza di un classificatore Data Mining - S. Orlando 75 Boosting Creo un classificatore a partire dai dati iniziali Viene assegnato un peso (aumentato il peso) degli oggetti che non sono classificati correttamente dal classificatore Viene creato un altro classificatore sul nuovo dataset “pesato” Si ripete il processo fino ad ottenere k classificatori Per classificare un oggetto mai visto – chiedo a tutti i classificatori – assegno un peso ad ogni classificatore in funzione della sua accuratezza Data Mining - S. Orlando 76 Ada Boost Faccio un sampling con replacement del dataset creo un nuovo classificatore incremento il peso degli oggetti classificati male decremento il peso degli oggetti classificati bene ripeto il procedimento N.B.: durante il sampling un oggetto ha probabilità di essere scelto pari al suo peso ! Data Mining - S. Orlando 77 Bagging vs. Boosting Boosting tende ad essere più accurato Ma Bagging è meno suscettibile a over-fitting Data Mining - S. Orlando 78 Prediction (vs. Classification) I metodi predittivi sono simili a quelli per la classificazione – Prima costruisci il modello – Poi usa il modello per predire i valori sconosciuti • Il metodo di predizione più importante è la regressione – Regressione Lineare e Multipla – Regressione non-lineare La predizione è differente dalla classificazione – La classificazione predice etichette di classe categoriche – I metodi predittivi si occupano di predire valori continui non conosciuti Data Mining - S. Orlando 79 Metodi predittivi Regressione lineare: Y = α + β X – Modelliamo una variabile Y (variabile che vogliamo predire) come una funzione lineare di un’altra variabile X (che di solito è nota, e sulla quale basiamo la predizione di Y) – I coefficienti del modello (α, β) determinati sulla base dei dati conosciuti (di training del modello) • Metodi dei minimi quadrati applicati ai valori conosciuti del training dataset Y1, Y2, …, X1, X2, …. Y = 21.7 + 3.7 X Data Mining - S. Orlando 80 Metodi predittivi Regressione lineare multipla: Y = b0 + b1 X1 + b2 X2 …. – Abbiamo variabili multiple di predizione X1, X2, ecc. su cui basare il valore di Y – Ancora minimi quadrati Regressione non lineare – I dati non mostrano l’esistenza di una dipendenza lineare – La variabile di predizione X ha una relazione con la variabile da predire Y modellabile con una funzione polinomiale Y = α + β1 X + β2 X2 + β3 X3 – Possiamo introdurre nuove variabili (X1 = X, X2 = X2, X3 = X3) per trasformare l’equazione polinomiale in una lineare, su cui applicare il metodo dei minimi quadrati Data Mining - S. Orlando 81 Conclusioni La Classificazione è stato un problema studiatissimo (soprattutto in statistica, machine learning) La Classificazione è probabilmente una delle tecniche di data mining più usate, e rispetto alle quali sono state introdotte moltissime estensioni Direzioni di ricerca: classificazione di dati non-relazionali, es.: testi, dati spaziali, multimedia, etc.. Data Mining - S. Orlando 82