640 likes | 745 Vues
Data Mining e Scoperta di Conoscenza. Seminario. Data Mining with Evolutionary Algorithms. Andrea Terlizzi. L’evoluzione biologica e…. La teoria Darwiniana I principi dell’evoluzione: Variazione genetica Selezione naturale Solo i migliori sopravvivono…. … i problemi computazionali.
E N D
Data Mining e Scoperta di Conoscenza Seminario Data Mining with Evolutionary Algorithms Andrea Terlizzi
L’evoluzione biologica e… • La teoria Darwiniana • I principi dell’evoluzione: • Variazione genetica • Selezione naturale Solo i migliori sopravvivono…
… i problemi computazionali • La metafora di fondo • Problemi complessi in svariati settori, difficili da affrontare con mezzi analitici: • Pianificazione • Progettazione • Simulazione • Machine learning • …
Gli algoritmi evolutivi • Il flusso di esecuzione di un tipico algoritmo evolutivo • Gli algoritmi evolutivi comprendono: • Algoritmi genetici • Programmazione genetica • Strategie evolutive • Programmazione evolutiva
Gli algoritmi genetici (GA) • J. Holland (1975) • La principale differenza tra gli algoritmi genetici e la programmazione genetica è nelle strutture dati utilizzate. • Negli algoritmi genetici gli individui vengono rappresentati tramite stringhe (generalmente di bit) 1000111110000100 0011011010011010 0001110010111001 1110001000010111
La programmazione genetica (GP) • J. Koza (1992) • Nella programmazione genetica la popolazione è costituita da programmi (rappresentati da alberi di parsing) Funzioni Terminali
La funzione fitness • La funzione fitness definisce i criteri per la classificazione, la selezione e l’inclusione nelle prossime generazioni degli individui • Metodi di selezione: • Roulette wheel selection • Tournament selection • Rank selection • …
Variazioni all’algoritmo di base • Nel modello classico tutta la popolazione viene sostituita ad ogni generazione. Esistono altri modelli: • Steady State: solo alcuni individui vengono sostituiti ad ogni generazione • Elitismo: ai migliori individui viene garantita la permanenza nella successiva generazione • Modello a isole: si ha un insieme di popolazioni, soggette a fenomeni migratori, che evolvono in maniera autonoma
Data Mining Tasks • Nel Data Mining sono state studiate e sperimentate tecniche genetiche per la risoluzione di problemi quali: • Classificazione • Clustering • Scoperta di regole associative
Cosa vedremo… • GA (GP) e Classification Rules • Valutazione della qualità predittiva di regole del tipo IF-THEN • GP e Classificazione • Analisi e confronto di 5 classificatori • GA e Clustering • L’algoritmo K-means “geneticamente” modificato • GA e Association Rules • Un metodo per la ricerca di itemsets frequenti
GA & Classification Rules • Una regola di classificazione è una formula logica del tipo: IF cond1 AND… AND condnTHEN class=ci AntecedenteConseguente • Idee base: • Le regole candidate sono rappresentate come individui di una popolazione • La qualità delle regole è calcolata da una funzione fitness
GA & Classification Rules • Tre problematiche principali: • Come definire un individuo per rappresentare una regola IF-THEN • Come adattare gli operatori genetici alla gestione delle regole • Come progettare la funzione fitness
Rappresentazione degli individui • Due approcci: • Michigan 1 individuo 1 regola • Sintassi semplice • Problemi nel valutare insiemi di regole • Pittsburgh 1 individuo più regole • Sintassi complessa • Calcolo della fitness più complicato
Rappresentazione degli individui • Per la parte antecedente (congiunzione di condizioni) • Supponendo che un attributo possa assumere k valori discreti, una condizione sul valore dell’attributo si codifica con k bit • Es. L’attributo Stato_civile può assumere 4 valori: single, sposato, divorziato, vedovo. Occorre, quindi, una stringa di 4 bit. Il valore 0110, ad esempio, rappresenta la seguente regola: IF (Stato_civile=“sposato” OR “divorziato”)
Rappresentazione degli individui • Per la parte conseguente (classe predetta) • Almeno due varianti: • Inserire la classe nella codifica dell’individuo • Scegliere la classe in maniera deterministica • La più predetta • Quella che massimizza la fitness
Gli operatori genetici • Poiché non si è in grado di sapere a priori quante condizioni producano una “buona” regola bisogna trattare individui di lunghezza variabile • L’operatore di crossover deve essere modificato, anche per evitare di generare regole illegali • Applicando il crossover ai seguenti individui: 1:(Età>25) AND (Stato_civile=“sposato”) 2:(Lavora=“Si”) AND (Età<21)
Gli operatori genetici • Potrebbe essere generata la seguente regola, chiaramente non valida: IF (Età>25) AND (Età<21) • Per ovviare a questo inconveniente si possono codificare gli attributi nello stesso ordine in cui essi appaiono nel data set, inserendo condizioni “vuote” se necessario 1:(Età>25) AND (Stato_civile=“sposato”) AND empty condition 2:(Età<21) AND empty condition AND (Lavora=“Si”)
Gli operatori genetici • Mutazione generalizzata/specializzata (Età>25) AND (Stato_civile=“single”) Generalizzazione (Età>21) AND (Stato_civile=“single”) Specializzazione (Età>30) AND (Stato_civile=“single”)
La funzione fitness • Requisiti: • Accuratezza predittiva • Comprensibilità • Interesse • Per una regola (IF A THEN C): CF (Fattore di confidenza)=|A&C| / |A| • |A|=numero di esempi che soddisfano A • |A&C|=numero di esempi che soddisfano A ed hanno come classe predetta C
La funzione fitness • La qualità di una regola può essere espressa più accuratamente utilizzando una matrice 2x2, detta matrice di confusione
La funzione fitness • Le etichette nei quadranti hanno i seguenti significati: • TP (True Positives) = gli esempi che soddisfano sia A che C • FP (False Positives) = gli esempi che soddisfano A ma non C • FN (False Negatives) = gli esempi che non soddisfano A ma soddisfano C • TN (True Negatives) = gli esempi che non soddisfano né A né C • Il fattore di confidenza diventa: CF=TP / (TP+FP)
La funzione fitness • La completezza di una regola: Comp=TP / (TP+FN) • La comprensibilità varia in base al dominio applicativo. In generale: • –condizioni • +chiarezza • L’interesse è una misura che richiede l’interazione con l’utente • La funzione fitness può essere definita come la somma pesata di queste caratteristiche
GP & Classification Rules • Si considera ora l’approccio Pittsburgh • Ogni individuo corrisponde ad un insieme di regole antecedenti codificate in DNF • L’insieme dei nodi funzione contiene gli operatori logici: AND, OR e NOT • L’insieme dei nodi terminali consiste di tutte le possibili condizioni della forma Attri=Valij
GP & Classification Rules • Vengono introdotte alcune restrizioni nella struttura dell’albero: • Il nodo radice è sempre un nodo OR • Ad eccezione della radice, ogni nodo OR ha come genitore un altro nodo OR e può avere figli di ogni tipo • Ogni nodo AND ha come genitore un nodo AND o un nodo OR e può avere come figli AND, NOT o nodi terminali • Un nodo NOT può avere come unico figlio un nodo NOT o un nodo terminale • Non possono esserci 2 o più nodi terminali riferiti ad uno stesso attributo nella stessa regola (per evitare regole invalide)
Gli operatori genetici • Vengono utilizzati gli operatori genetici convenzionali, condizionati dall’impossibilità di generare individui che rappresentino regole illegali Es. GP Crossover
La funzione fitness • Si utilizza come in precedenza la matrice di confusione • Se due individui hanno la stessa fitness viene preferito quello con minore complessità Complessità=2*(N° regole + N° condizioni)
Rule pruning • Un apposito operatore rimuove alcune condizioni dall’albero (semplifica e generalizza le regole) • Meno una condizione è rilevante e maggiore è la probabilità che venga rimossa
GP & Classificazione • La classificazione è un processo a due fasi: • Costruzione di un modello a partire da un insieme di esempi (training set) • Utilizzo del modello • Stima dell’accuratezza (mediante test set) • Classificazione delle istanze ignote
GP & Classificazione • 6 datasets dall’UCI Machine Learning Repository, differenti per dominio, taglia e complessità • 5 metodi alternativi di classificazione: • Binary Decomposition • Static Range Selection • Dynamic Range Selection • Class Enumeration • Evidence Accumulation
GP & Classificazione • Gli insiemi delle funzioni e dei terminali vengono standardizzati per avere omogeneità nella costruzione della soluzione in ognuno dei 5 metodi
GP & Classificazione • Un esempio di programma
Binary Decomposition • La programmazione genetica è efficiente per problemi di classificazione binaria • Se la classificazione è multiclasse diventa difficile trovare punti di divisione significativi tra le classi • In questo metodo il problema multiclasse viene decomposto in un insieme di sottoproblemi binari
Static Range Selection • Dividere le classi in base ad un’analisi intuitiva del problema • Caso binario: uguale al precedente (split tra valori positivi e negativi) • Caso multiclasse: non c’è ottimalità
Dynamic Range Selection • Per ogni individuo (programma) vengono determinati dinamicamente gli intervalli di classe • Un sottoinsieme del training set viene utilizzato per ottenere la segmentazione dell’output • Per praticità è opportuno fissare un range principale [-X,X] nel quale debbano entrare tutte le classi
Class Enumeration • Vengono apportate alcune modifiche agli insiemi base
Evidence Accumulation • Anche in questo modello vengono introdotti dei cambiamenti • Si utilizza un vettore ausiliario che contiene un elemento per ogni classe
Evidence Accumulation • Appositi nodi terminali modificano il valore delle classi • La classificazione viene decisa considerando la classe che ha ottenuto il valore più alto
Analisi dei risultati Datasets Binari Datasets Multiclasse
Analisi dei risultati • I 5 metodi sono stati confrontati con altri 33 classificatori • E’ stato ottenuto un ranking mostrato in tabella (viene indicato il “piazzamento” in classifica da 1 a 34)
GA & Clustering • Un cluster è una collezione di istanze tali che: • le istanze dello stesso cluster sono simili tra loro (alta somiglianza intra-classe) • le istanze di cluster diversi sono dissimili (bassa somiglianza inter-classe)
GA & Clustering • Un algoritmo di partizionamento, date n istanze e un numero k, divide le istanze in k partizioni • Obiettivo: massimizzare la qualità del clustering • Soluzione ottimale: può essere ottenuta enumerando tutte le possibili partizioni.. non è praticabile • Soluzione euristica: basata sulla ricerca di minimi locali
GA & Clustering • Il metodo K-means Input: k (numero di clusters), n (oggetti) • Scegli k oggetti come centri dei cluster • Ripeti • Assegna ogni oggetto al cluster il cui centro è più vicino • Ricalcola i nuovi centri dei cluster • Finchè non c’è nessun cambiamento
Genetic K-means Algorithm (GKA) • Combina la semplicità dell’algoritmo k-means e la robustezza degli algoritmi genetici • Utilizza due operatori appositi: • L’operatore K-means (invece del crossover) • La mutazione distance-based
Genetic K-means Algorithm • Sia {xi, i=1,…,n} l’insieme degli n pattern (vettori di dimensione d) da partizionare in k cluster • Si possono definire i e k delle variabili binarie: 1 se l’i-esimo pattern appartiene al k-esimo cluster wik= 0 altrimenti
Genetic K-means Algorithm • Quindi, la matrice W=[wij] ha le seguenti proprietà: wij {0,1} • Per codificare W in una stringa, si considera un individuo di lunghezza n, i cui geni possono assumere valori compresi tra 1 e k. • Ogni gene corrisponde ad un pattern e il suo valore rappresenta il numero del cluster al quale esso appartiene
Genetic K-means Algorithm • La popolazione iniziale è selezionata casualmente • L’operatore selezione sceglie un individuo dalla popolazione secondo la strategia roulette wheel fitness stringa
Genetic K-means Algorithm • In questo contesto il valore di fitness di una stringa dipende dalla variazione totale all’interno del cluster TWCV (detta anche square error) • Più lo square error è basso e più il valore di fitness è alto
Genetic K-means Algorithm • Ogni gene subisce una mutazione con probabilità Pm • Questa probabilità dipende da quanto il dato sia vicino ad un cluster center • L’operatore K-means non è altro che l’applicazione di un unico passo dell’algoritmo classico • I risultati sperimentali hanno dimostrato che: • La mutazione è indispensabile per raggiungere l’ottimo globale • L’operatore K-means aumenta considerevolmente la velocità di convergenza dell’algoritmo