Sistemi di supporto alle decisioni aziendali Alberi decisionali Alberi Decisionali L’Albero Decisionale è una tecnica di classificazione o di regressione ad albero. " Tecnica di data mining prescrittivo (cluster: descrittivo, impossibile uso automatico dei risultato) " Tecnica di classificazione a priori " " (-) descrive bene i casi per cui è costruito, difficile generalizzare (problema overfitting) (+) semplice interpretazione dei risultati Le Tecniche di Data Mining Le principali tecniche di data mining che vedremo sono: ! Cluster Analysis ! Alberi Decisionali ! Reti Neurali Alberi Decisionali " " " " " Nodi (escluse le foglie): domande (decisioni da prendere) Foglie: decisioni Rami: valori degli attributi Cammino: regola Albero: È una sequenza di regole, di condizioni: Se .. ! allora.. Se età > 18 allora decisione: si 1 Alberi di classificazione Alberi Decisionali " " Quando l’albero viene applicato ai dati di ingresso, ogni dato viene analizzato dall’albero lungo un percorso stabilito da una serie di test sugli attributi (features) del dato stesso, finchè il dato non raggiunge un nodo foglia Ogni nodo è associato ad una classe. Quando arriva alla foglia, al dato viene assegnata: # una etichetta di classe (class label) nel caso di alberi di classificazione, # un valore numerico alla sua variabile target nel caso di alberi di regressione " " No. di ruote 2 motore si moto 6 " Esempio [Russel, Norvig]: entrare in un ristorante? no si >60 no no prenotazione no si Bar no si no 7 si si alcuni " auto no bici Apprendimento: costruire l’albero a partire da esempi # esempi di decisioni # esempi delle varie classi corrispondenti alle foglie " pieno stima attesa 4 C1:auto ruote=4, motore=si C2:bici ruote=2, motore= si C3:moto ruote=2, motore= no no. clienti nessuno Dato un’insieme di classi con descrizione di un insieme di feature Dato un oggetto stabilire a che classe appartiene " si/no (esempi e contro-esempi) nel caso di decisioni binarie Esempio: 0-10 30-60 10-30 alternative fame si no si si Ven/Sab si alternative no si no si piove si no si no si no si e no sono le due classi di decisione si 8 2 " Una soluzione banale " Obiettivo # # # " costruire un ramo per ognuno degli esempi costruire un albero “semplice” Occam’s razor: il più semplice tra quelli consistenti con gli esempi Un algoritmo: ID3 [Quinlan] if non ci sono esempi then termina if tutti gli esempi hanno la stessa classificazione then etichetta il nodo con la classificazione else if nessun attrubuto rimasto then termina con problema seleziona attributo ai che discrimina meglio dividi gli esempi in base ai valori di ai costruisci un nodo etichettato con ai e con un ramo in uscita per ogni valore vj di ai richiama ricorsivamente per ogni vj con gli esempi corrispondenti 9 " " " 10 Esempio # # attributo noClienti: per due valori discrimina completamente noClienti nessuno alcuni pieno si: --si: x1, x3, x6, x8 si: x4, x12 no: x7, x11 no: x2, x5, x9, x10 no: --- si: x3, x12 no: x7, x19 tipo I " si: x6 no: x10 si: x1 no: x5 nessuno alcuni pieno si: x1, x3, x6, x8 si: x4, x12 no: --no: x2, x5, x9, x10 fame si si: x4, x8 no: x2, x11 si: x4, x12 no: x2, x10 no si: --no: x5, x9 – Analogamente si procede ricorsivamente su ramo “si” – Tra i due noClienti è la scelta migliore – in generale tra tutti è quello con entropia più bassa 11 si analizzano gli altri attributi si seleziona quello che discrimina meglio nel caso “fame”: per uno dei due valori si ha classificazione completa noClienti si: --no: x7, x11 Thai F Algoritmo procede ricorsivamente considerando il valore “pieno” di noClienti e considerando gli esempi per quel valore " – attributo tipo: discrimina male per tutti i valori burg Attributo ideale ai da selezionare ad ogni passo # discrimina completamente tra gli esempi, ossia " dati valori v1, …, vk " per ogni vj, tutti gli esempi con lo stesso valore vj hanno la stessa classificazione Attributo da scegliere # quello che discrimina meglio tra gli gli esempi " per la maggior parte dei vj, gli esempi con lo stesso valore di vj hanno quasi tutti la stessa classificazione 12 3 # Alla fine albero risultante (diverso da quello visto prima) noClienti alcuni pieno si: --si: x1, x3, x6, x8 si: x4, x12 no: x7, x11 no: x2, x5, x9, x10 no: --no si fame si no si: x4, x12 si: --no: x2, x10 no: x5, x19 si nessuno burg si: x12 no: --si tipo I no 13 si: --no:--si " Conoscenza appresa influenzata dagli esempi # # " Ven/Sab si no si: x4 si: --no: --no: x2 no si È importante sottolineare che in questo contesto è già noto a priori il tipo di classificazione che si vuole realizzare: si vuole classificare tra le classi predefinite dal training set e dal test set. Questo tipo di classificatori sono molto utili per applicazioni tipo diagnosi di malattie, ma non permettono di individuare cluster di record che definiscono una nuova classe (ad es. una nuova malattia). potrebbe classificare in modo sbagliato nuove istanze esempi devono essere un buon campione della popolazione Una strategia di verifica della conoscenza appresa da esempi # # si: x4 no: x2 Alberi Decisionali " " Thai F si: --no: x10 Valutazione delle prestazioni collezionare un largo insieme di esempi che sia un campione significativo dividere l’insieme in due " " # # 14 # training set T test set S in modo uniforme (secondo la stessa distribuzione degli esempi) effettuare l’apprendimento usando T valutare la percentuale di corretta classificazione usando S ripete lo stesso processo più volte con diversa divisione tra T e S e per diverse dimensioni del training set Alberi Decisionali " La parte più intensa, dal punto di vista computazionale, risulta la generazione dell’albero, problema di trovare il più piccolo albero decisionale. " Fortunatamente, con delle semplici euristiche si riescono a trovare alberi di decisione capaci di descrivere un gran numero di casi in maniera concisa. L’idea fondamentale alla base di questi algoritmi consiste nel cercare di verificare per primi gli attributi più importanti (attributi discriminativo). Per più “importanti” si intende quelli che fanno più differenza nella classificazione dei dati (la quale differenza viene misurata, come si vedrà, con opportuni indici detti indici di diversità). In questo modo possiamo sperare di arrivare alla classificazione corretta con un piccolo numero di test. " " 4 Alberi Decisionali La maggior parte degli algoritmi di decision tree costruiscono l’albero decisionale in due fasi: Tree Building e Tree Pruning. Alberi Decisionali: Tree Pruning L’albero costruito nella fase Tree Building classifica perfettamente il set di training. Questo implica, però, che sono stati creati, in tale fase, rami (quindi regole di decisione) che rappresentano regole specifiche per il training set, ma non regole generali valide anche per i dati mai visti. Per evitare questo problema, detto di overfitting (ipermodellamento o sovra-adattamento), e ottenere un modello generale applicabile efficacemente ad altri dati, occorre potare l’albero: occorre cioè rimuovere dall’albero, tutti i rami che possono condurre a errori nella classificazione dei dati futuri, e lasciare solo il sotto-albero che presenta il minimo errore stimato. Alberi Decisionali: Tree Building In questa fase si costruisce un albero di decisione iniziale, partizionando ricorsivamente i dati del training set usando di volta in volta l’attributo discriminitivo (l’attributo cioè, secondo il quale la partizione creerà gruppi più omogenei). Ricorsivamente significa che il processo di segmentazione viene ripetuto finche’ tutti i dati di una partizione apparterranno ad una classe (gruppo omogeneo). Alberi Decisionali e Data Mining I decision tree sono relativamente veloci, confrontati con altri metodi di classificazione e regressione, e sono di semplice interpretazione. Questa proprietà ne indica il campo di applicazione nel Data Mining: vengono impiegati quando lo scopo che ci si prefigge è la generazione di regole (di classificazione o regressione) chiare e semplici. 5 Sistemi di supporto alle decisioni aziendali Reti neurali Reti Neurali Tecnica supervisionata Approcci sub-simbolici (connessionistici) (anni 40, Artificial Inteligence): modelli matematici di funzionamento della mente umana (alberi sono simbolici : rappresentazione simbolica della conoscenza e del ragionamento logico) Servono per fare: " Classificazioni " Previsioni Le Tecniche di Data Mining Le principali tecniche di data mining che vedremo sono: ! Cluster Analysis ! Alberi Decisionali ! Reti Neurali Reti Neurali La rete neurale è un sistema di calcolo (o processore) che nasce dall’idea di simulare artificialmente il comportamento del cervello umano, per sfruttarne le sue caratteristiche di " Complessità " Non-linearità " Sistema a processamento parallelo quando sono più utili i risultati che la loro comprensione 6 Reti Neurali Reti Neurali: Modello base del Neurone Possiamo definire una rete neurale come un processore parallelo composto di singole unità di calcolo, dette neuroni, che possiede una naturale predisposizione a memorizzare le conoscenze sperimentalmente acquisite ed a renderle disponibili per l’uso. Un neurone è una unità di processamento di informazioni (unità di computazione) e presenta la seguente struttura: INPUT La sua somiglianza con il cervello umano si riferisce a: " La conoscenza è acquisita dalla rete mediante un processo di apprendimento " Le connessioni neuronali, ossia i pesi sinaptici, sono utilizzati per memorizzare le informazioni acquisite. sinapsi (collegamento) OUTPUT L’uso delle reti, quindi, consente la possibilità di generalizzare la conoscenza acquisita durante la fase di apprendimento Reti Neurali: Modello base del Neurone Unità interne: processo che unità di input porta all’attivazione di alcune unità di output unita di input features p p p p 1 w unità interne unità di OUTPUT attivata solol’unità che corrisponde alla classe Reti Neurali " Sono quindi funzioni matematiche complesse (sommatorie, funzioni esponenziali e parametriche) " Ogni nodo di output connesso ad uno di input da un PESO: pesi combibati da funzioni di aggregazioni Z = 3x + 2y -1 K1 2 3 R Σ w n f yk x y 3 Z-1 2 kR bk 7 Reti Neurali Reti Neurali: limiti La funzione non è una semplice combinazione degli input: ma il valore dell’output viene calcolato con pesi sulle unità nascoste w1 x Z w2 Reti Neurali: training " " " " w1 y w2 " Processo di calcolo dei pesi in modo che la rete faccia per il meglio la previsione delle variabili target Data una rete con pesi inizializzati a valori di default Dato un insieme di esempi # Stimoli di input # Risultato atteso per unità di output (istanze classificate) " " Non forniscono spiegazioni dei risultati Necessario un ampio lavoro di preparazione dei risultati # Solo valori compresi da -1 e + 1 # Varibili categoriche $ numeriche Non sono in grado di gestire i valori mancanti Con troppe variabili di input non funzionano bene (difficile individuare i pattern) # Meglio combinarle con alberi decisionali che selezionano prima le variabili piu imp Reti Neurali: Topologia MLP Una Multi-Layers Perceptron net (MLP) è composta da una serie di “percettroni” organizzati con una struttura gerarchica che può comprendere uno o più strati nascosti (hidden layer) legati con la regola del feed-forward (un nodo dello strato i-esimo può essere collegato solo ad un nodo dello strato (i+1)-esimo): 8 Reti Neurali: Topologia MLP Reti Neurali: Topologia MLP Il percettrone è un semplice neurone dotato del circuito “teacher” per l’apprendimento: Reti Neurali: Topologia MLP L’algoritmo si arresta o per il raggiungimento dell’errore minimo accettabile o per il raggiungimento del numero massimo di epoche stabilite in fase di progetto (per evitare che il processo di addestramento termini all’infinito). Un’epoca è un ciclo di aggiornamento completo di tutti i pesi, dando in input l’intero set di training L’addestramento di una MLP avviene in genere con l’algoritmo di apprendimento Back-Propagation. L’idea di questo algoritmo è la seguente: per ogni dato di ingresso (del training set) applicato, si calcola l’errore commesso in uscita dalla rete (ricordiamoci che stiamo in apprendimento supervisionato, quindi conosciamo l’uscita giusta di ogni ingresso!!) " Calcolo dell’errore (risultato atteso – risultato attuale) " Propagazione all’indietro: ripartendo dall’errore nell’output, cambiare i pesi in modo da ridurre l’errore Reti Neurali: Esempio di applicazione di una MLP al riconoscimento di immagini " Obiettivo: Riconoscere in che direzione guarda la persona fotografata da una immagine video. " Scelte progettuali: Si sceglie una rete Multi Layer Perceptron così dimensionata: # Si codifica ogni immagine in un numero standard di pixel e ogni pixel rappresenta un input della rete # Si stabiliscono quattro uscite: se la persona guarda a sinistra, destra, dritto, alto # Si sceglie un solo strato nascosto con tre unità # Si usa un training set di 260 immagini # Si utilizza l’algoritmo di Back-Propagation con α = 0,3 " Risultato: una precisione del 90%. Tre esempi di riconoscimento (dopo un addestramento di 100 epoche), sono illustrati nella figura seguente. 9 Reti Neurali: Esempio di applicazione di una MLP al riconoscimento di immagini Reti Neurali: Topologia SOM Rete in cui i neuroni sono organizzati in un reticolo bidimensionale Reti Neurali: Topologia SOM Reti Neurali e Data Mining Quando usare le reti neurali nel data mining ? " Le reti neurali rappresentano una buona scelta in caso di classificazioni e previsioni, quando è più importante avere velocemente e bene i risultati di un modello che non sapere come questo funziona. " Le reti neurali non funzionano bene quando si ha a che fare con centinaia o migliaia di variabili di input. Un gran numero di queste caratteristiche rende più difficile il compito della rete di individuare pattern e la fase di training può prolungarsi nel tempo senza trovare una buona soluzione. In questo caso, le reti neurali danno frutti migliori se combinate con gli alberi decisionali: questi ultimi infatti selezionano le variabili più importanti, impiegate poi per il training della rete 10
© Copyright 2024 Paperzz