72
WEKA: Machine Learning Algorithms in java Ilaria Bordino

WEKA: Machine Learning Algorithms in java Ilaria Bordino

Embed Size (px)

Citation preview

Page 1: WEKA: Machine Learning Algorithms in java Ilaria Bordino

WEKA: Machine Learning Algorithms in java

Ilaria Bordino

Page 2: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Pagina 2

Introduzione a WEKA

• Collezione di algoritmi di Machine Learning – Package java Open Source

• Acronimo di Waikato Environment for Knowledge Analysis

• Scaricabile gratuitamente presso http://www.cs.waikato.ac.nz/ml/we

• Scritto in java, utilizzabile su qualunque sistema operativo dotato di piattaforma java.

Ilaria BordinoWEKA -- ML in java

Page 3: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Introduzione a Weka

• Collezione estensiva di tool per Machine Learning e Data Mining

• Classificazione: implementazione java di tutte le tecniche di Machine Learning correntemente utilizzate.

• Regressione• Regole di associazione• Algoritmi di clustering

Ilaria BordinoWEKA -- ML in java Pagina 3

Page 4: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Weka: riferimenti utili

• http://www.cs.waikato.ac.nz/ml/weka

Ilaria BordinoWEKA -- ML in java

• Home page di Weka: qui è possibile scaricare software e dataset di esempio

• http://weka.sourceforge.net/wekadoc/index.php/Main_Page

• Un Wiki con la documentazione di Weka

• http://weka.sourceforge.net/wiki/index.php/Main_Page

• Un wiki con risposte a vari problemi che possono sorgere usando Weka

Pagina 4

Page 5: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Weka: schemi per la classificazione

• Decision trees• Rule learners• Naïve Bayes• Decision Tables• Locally weighted regression• SVM• Instance-based learners• Logistic regression

Ilaria BordinoWEKA -- ML in java Pagina 5

Page 6: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Weka: Predizione Numerica

• Linear regression • Model tree generators• Locally weighted regressione• Instance-based learners• Decision Tables• Multi-layer perceptron

Ilaria BordinoWEKA -- ML in java Pagina 6

Page 7: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Meta Schemi

• Bagging• Boosting• Stacking• Regression via classification• Classification via regression• Cost sensitive classification

Ilaria BordinoWEKA -- ML in java

Schemi per clustering

• EM• CoWeb

Pagina 7

Page 8: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Installazione

• Assicurarsi che sulla propria macchina sia presente una installazione del JRE (http://java.sun.com)

• Scaricare l’archivio .ZIP di Weka e decomprimerlo• Aprire un terminale ed entrare nella directory di

Weka• Digitare il comando• java -jar weka.jar

Ilaria BordinoWEKA -- ML in java Pagina 8

Page 9: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ambienti operativi

• SimpleCLI: Ambiente a linea di comando da usare per invocare direttamente le varie classi da cui Weka è composto.

• Explorer: ambiente da utilizzare per caricare degli insiemi di dati, visualizzare la disposizione degli attributi, preprocessare i dati ed eseguire  algoritmi di classificazione, clustering, selezione di attributi e determinazione di regole associative.

Ilaria BordinoWEKA -- ML in java Pagina 9

Page 10: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ambienti operativi

• Experimenter: è una versione batch dell'Explorer. Consente di impostare una serie di analisi, su vari insiemi di dati e con vari algoritmi, ed eseguirle alla fine tutte insieme. È possibile in questo modo confrontare vari tipi di algoritmi, e determinare quale è il più adatto a uno specifico insieme di dati.

• Knowledge Flow: una variante dell'Explorer, in cui le operazioni da eseguire si esprimono in un ambiente grafico, disegnando un diagramma che esprime il "flusso della conoscenza". È possibile selezionare varie componenti (sorgenti di dati,  filtri, algoritmi di classificazione) e collegarli in un diagramma tipicamente detto "data-flow” .

Ilaria BordinoWEKA -- ML in java Pagina 10

Page 11: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ambienti operativi: Explorer

Ilaria BordinoWEKA -- ML in java Pagina 11

Page 12: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Formato dei dati

• Weka può prelevare I propri dati usando 3 funzioni:

• Open File: preleva i dati da un file di testo sul computer locale, in formato ARFF, CSV, C45 o Binary serialized istances. Il formato standard di Weka è ARFF.

• Open URL: preleva i dati da un file su web, in uno dei formati di cui sopra;

• Open DB: preleva i dati da un server database supportato dai driver JDBC.

Ilaria BordinoWEKA -- ML in java Pagina 12

Page 13: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Preprocessamento dei dati

• Una volta aperto l'insieme di dati di interesse, in basso a sinistra compare l'elenco degli attributi che compongono i dati in questione.  Cliccando su un attributo, sul lato destro appaiono delle informazioni statistiche:

• per attributi nominali abbiamo l'elenco dei possibili valori e, per ognuno di essi, il numero di istanze con quel valore.

• per attributi numerici, abbiamo invece informazioni sul valore massimo, minimo, media e deviazione standard, oltre a numero di valori diversi, numero di valori unici e numero di istanze col valore mancante

Ilaria BordinoWEKA -- ML in java Pagina 13

Page 14: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Preprocessamento dei dati

• Sotto le informazioni statistiche abbiamo un istogramma. Con gli attributi nominali viene visualizzato, per ogni valore, una barra di altezza proporzionale al numero di istanze con quel valore.

• Per gli attributi numerici le informazioni sono simili, ma il sistema decide automaticamente in quanti intervalli divedere il range dell'attributo e quindi quante barre visualizzare.

• Una volta caricati i dati, è possibile modificarli applicando un filtro o una procedura di modifica interattiva. Esempi: modificare tutte le istanze con un valore fisso per un attributo, cancellare o rinominare attributi…

Ilaria BordinoWEKA -- ML in java Pagina 14

Page 15: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Formato ARFF

• ARFF è il formato dati standard di WEKA.• Un file ARFF è composto da una intestazione e dal corpo

dati vero e proprio.• L’intestazione contiene il nome del set dei dati e una

intestazione degli attributi.• Per ogni attributo è possibile specificare il tipo: numerico,

categoriale, stringa o data.• I dati veri e propri sono forniti creando una riga per ogni

istanza, e separando i campi con delle virgole.• Ovunque è possibile inserire dei commenti, facendoli

precedere dal simbolo %.

Ilaria BordinoWEKA -- ML in java Pagina 15

Page 16: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Formato ARFF: esempio

@relation weather% Relazione weather-data@attribute outlook {sunny, overcast, rainy}@attribute temperature real@attribute humidity real@attribute windy {TRUE, FALSE}@attribute play {yes, no}@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yes

Ilaria BordinoWEKA -- ML in java Pagina 16

Page 17: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Formato ARFF: Esempio

• Nell’esempio fornito osserviamo che:• La riga @relation weather specifica un nome per

la relazione.• La riga @attribute outlook {sunny, overcast, rainy} specifica che l’attributo di nome outlook è di tipo categoriale e può assumere i valori sunny, rainy e overcast.

• La riga @attribute temperature real specifica che l’attributo di nome temperature è di tipo numerico

• La riga @data indica l’inizio dei dati veri e propri.

Ilaria BordinoWEKA -- ML in java Pagina 17

Page 18: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Formato ARFF

• Si può utilizzare il valore ? come dato per indicare un valore mancante.

• In generale, ogni volta che serve individuare un attributo particolare come la “classe” dell’istanza, ad esempio nei problemi di classificazione o selezione degli attributi, l’ultimo attributo gioca questo ruolo.

• Si può comunque sempre specificare un diverso attributo, caso per caso.

Ilaria BordinoWEKA -- ML in java Pagina 18

Page 19: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Architettura

Ilaria BordinoWEKA -- ML in java Pagina 19

Page 20: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Il package weka.core

• Il package core è il package centrale del sistema Weka. Contiene classi a cui quasi tutte le altre classi fanno accesso.

• Classi principali:• Attribute: un oggetto di questa classe rappresenta un

attributo. Contiene il nome dell’attributo, il suo tipo e, in caso di attributo nominale, I possibili valori.

• Instance: un oggetto di questa classe contiene I valori degli attributi di una particolare istanza.

• Instances: un oggetto di questa classe mantiene un insieme ordinato di istanze, ovvero un dataset.

Ilaria BordinoWEKA -- ML in java Pagina 20

Page 21: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Il package weka.classifiers

• Contiene implementazioni degli algoritmi più comunemente utilizzati per classificazione e predizione numerica.

• La classe più importante è Classifier, che definisce la struttura generale di un qualsiasi schema di classificazione o predizione;

• Contiene due metodi, buildClassifier() e classifyInstance(), che debbono essere implementati da tutti gli algoritmi di apprendimento,

• Ogni algoritmo di apprendimento è una sottoclasse di Classifier e ridefinisce questi metodi.

Ilaria BordinoWEKA -- ML in java Pagina 21

Page 22: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Altri package

• Weka.clusterers:• Contiene un’implementazione di due importanti metodi

di apprendimento non supervisionato: COBWEB ed EM.

• Weka.estimators:• Contiene sottoclassi di una generica classe Estimator,

che calcola vari tipi di distribuzioni di probabilità.

Ilaria BordinoWEKA -- ML in java Pagina 22

Page 23: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Il package weka.filters

• Tool per il preprocessamento dei dati: discretizzazione, normalizzazione, resampling, selezione, trasformazione o combinazione di attributi.

• La classe Filter definisce la struttura generale di tutte le classi che contengono algoritmi di filtering.

• Tali classi sono tutte implementate come sottoclassi di Filter.

Ilaria BordinoWEKA -- ML in java

Il package weka.attributeSelection

• Mette a disposizione classi per effettuare riduzioni dimensionali su una collezione di dati.

• Queste classi vengono utilizzate da weka.filters.attributeSelectionFilter, ma possono anche essere usate separatemente.

Pagina 23

Page 24: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatori: J48

• Alberi di decisione: Metodo di classificazione supervisionato.

• Un albero di decisione è una semplice struttura in cui I nodi non terminali rappresentano test su uno o più attributi mentre I nodi terminali riflettono I risultati della decisione.

• Approccio reso popolare da J.R.Quinlan• C4.5 è l’ultima implementazione di pubblico dominio

del modello di Quinlan. • L’algoritmo J48 è l’implementazione Weka dell’albero

di decisione C4.5

Ilaria BordinoWEKA -- ML in java Pagina 24

Page 25: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Alberi di decisione: approccio generale

• Scegliere un attributo che meglio differenzia i valori dell’attributo di output.

• Creare nell’albero un ramo separato per ogni possibile valore dell’attributo scelto.

• Dividere le istanze in sottogruppi che riflettano I valori dell’attributo scelto.

• Per ogni sottogruppo, terminare il processo di selezione degli attributi se (a) tutti I membri di un sottogruppo hanno lo stesso valore per l’attributo di output (in questo caso il ramo considerato va etichettato con il valore specificato)

Ilaria BordinoWEKA -- ML in java Pagina 25

Page 26: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Alberi di decisione: approccio generale

• (b) Il sottogruppo contiene un singolo nodo oppure non è più possibile individuare un attributo in base al quale fare differenziazioni. In questo caso, il ramo considerato viene etichettato con il valore dell’attributo di output che caratterizza la maggior parte delle istanze rimanenti.

• Il processo illustrato viene ripetuto per ogni sottogruppo che non è stato etichettato come terminale.

• L’algoritmo viene applicato ai dati di training. L’albero di decisione creato viene quindi testato su un dataset di test. Se non sono disponibili dati di test J48 esegue cross validation sui dati di training.

Ilaria BordinoWEKA -- ML in java Pagina 26

Page 27: WEKA: Machine Learning Algorithms in java Ilaria Bordino

J48: Opzioni

• Attributo di output: può essere scelto soltanto tra gli attributi di categoria.

• Fattore di confidenza: determina il valore da utilizzare per fare pruning (rimozione dei rami che non portano guadagno in termini di accuratezza statistica del modello); default: 25%

• Numero minimo di istanze per foglia: un valore alto creerà un modello più generale, un valore basso un albero più specializzato;

Ilaria BordinoWEKA -- ML in java Pagina 27

Page 28: WEKA: Machine Learning Algorithms in java Ilaria Bordino

J48: Opzioni

• Numero di cartelle per cross validation: determina come costruire e testare il modello in assenza di dati di test.

• Se questo valore è x, 1 – 1/x dei dati di training viene usato per costruire il modello e 1/x viene usato per il test. Il processo viene ripetuto x volte, in modo che tutti I dati di training siano usati esattamente una volta nei dati di test. La stima complessiva si ottiene facendo la media delle x stime d’errore. Valore tipico: 10

• Test data set: permette di specificare un insieme di dati di test.

Ilaria BordinoWEKA -- ML in java Pagina 28

Page 29: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Alberi di decisione: Vantaggi e Svantaggi

• Semplici da comprendere e da convertire in un insieme di regole di produzione;

• Possono classificare sia dati numerici che di categoria, ma l’attributo di output deve essere di categoria.

• Non ci sono assunzioni a priori sulla natura dei dati.• Molteplici attributi di output non sono consentiti.• Gli alberi di decisione sono instabili. Leggere variazioni

nei dati di training possono produrre differenti selezioni di attributi ad ogni punto di scelta all’interno dell’albero.

Ilaria BordinoWEKA -- ML in java Pagina 29

Page 30: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Altri classificatori

• bayes.NaiveBayes• meta.ClassificationViaRegression• functions.Logistic• functions.SMO

• lazy.Kstar• lazy.Ibk• rules.JRip

Ilaria BordinoWEKA -- ML in java Pagina 30

Page 31: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatori: parametri generali

• -t: file di training (formato ARFF)• -T: file di test (formato ARFF). Se questo parametro

manca, di default si esegue 10-fold cross validation• -k: specifica numero di cartelle per cross validation• -c: selezionare la variable classe• -d: salvare il modello generato dopo il training;• -l: caricare un modello salvato in precedenza• -i: descrizione dettagliata delle prestazioni• -o: disabilita output human- readable

Ilaria BordinoWEKA -- ML in java Pagina 31

Page 32: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Output di un classificatore:

• weka.classifiers.trees.J48• java weka.classifiers.trees.J48 -t data/weather.arff –I• La prima parte è una descrizione leggibile del

modello generato.• Il nodo alla radice dell’albero determina la prima

decisione• I numero in parentesi alla fine di ogni foglia indicano

il numero di esempi contenuti nella foglia stessa• Se una o più foglie non sono pure (tutti esempi della

stessa classe), viene indicato anche il numero di esempi che non sono stati classificati correttamente

Ilaria BordinoWEKA -- ML in java Pagina 32

Page 33: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Output del classificatore: esempio

Ilaria BordinoWEKA -- ML in java

J48 pruned tree------------------ outlook = sunny| humidity <= 75: yes (2.0)| humidity > 75: no (3.0)outlook = overcast: yes (4.0)outlook = rainy| windy = TRUE: no (2.0)| windy = FALSE: yes (3.0) 

Number of Leaves : 5 Size of the tree : 8

Pagina 33

Page 34: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Tempo impiegato per l’apprendimento

• Time taken to build model: 0.05 seconds• Time taken to test model on training data: 0 seconds• Per un albero di decisione l’apprendimento è

piuttosto veloce e la valutazione ancora di più• Nel caso di schema di apprendimento lazy, la fase di

test sarebbe sicuramente molto più lunga di quella di training

Ilaria BordinoWEKA -- ML in java Pagina 34

Page 35: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatore: valutazione prestazioni

• = Error on training data ==•  Correctly Classified Instance 14 100 %

Incorrectly Classified Instances 0 0% Kappa statistic 1

• Mean absolute error 0 • Root mean squared error 0 • Relative absolute error 0 %• Root relative squared error 0 %• Total Number of Instances 14

Ilaria BordinoWEKA -- ML in java Pagina 35

Page 36: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatore: valutazione prestazioni

• == Detailed Accuracy By Class ==•  TP Rate FP Rate Precision Recall F-Measure Class • 1 0 1 1 1 yes • 1 0 1 1 1 no

• Classificatore perfetto?• Il modello costruto con il training set è troppo

ottimistico 

Ilaria BordinoWEKA -- ML in java Pagina 36

Page 37: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatore: cross validation

• == Stratified cross-validation ==•  Correctly Classified Instances 9 64.2857 %• Incorrectly Classified Instances 5 35.7143 %• Kappa statistic 0.186 • Mean absolute error 0.2857• Root mean squared error 0.4818• Relative absolute error 60 %• Root relative squared error 97.6586 %• Total Number of Instances 14

Ilaria BordinoWEKA -- ML in java Pagina 37

Page 38: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatore: cross validation

• == Detailed Accuracy By Class == • TP Rate FP Rate Precision Recall F-Measure

Class• 0.778 0.6 0.7 0.778 0.737 yes • 0.4 0.222 0.5 0.4 0.444 no

• == Confusion Matrix == • a b <-- classified as • 7 2 | a = yes • 3 2 | b = no

Ilaria BordinoWEKA -- ML in java Pagina 38

Page 39: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatore: cross validation

• Risultati più realistici: accuratezza intorno al 64%• Kappa statistic: misura il grado di accordo della

predizione con la vera classe – 1.0 significa accordo perfetto

• Le altre metriche d’errore non sono molto significative ai fini della classificazione;

• Possono essere usate ad esempio per regressione• Matrice di confusione: istanze classificate

correttamente su una diagonale

Ilaria BordinoWEKA -- ML in java Pagina 39

Page 40: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Classificatore

• True Positive (TP) rate: frazione di esempi classificati classe x, fra tutti quelli che sono realmente di classe x

• FAlse Positive (FP) rate: frazione di esempi classificati classe x, ma appartenenti a un’altra classe, fra tutti quelli che non appartengono alla classe x

• Precision: frazione di esempi realmente di classe x fra tutti quelli classificati come x tp/ (tp + fp)

• Recall: tp / (tp + fn) • F-Measure: 2*Precision*Recall/(Precision+Recall),

Ilaria BordinoWEKA -- ML in java Pagina 40

Page 41: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Clustering

• Le tecniche di clustering si applicano per suddividere un insieme di istanze in gruppi che riflettano qualche meccanismo o caratteristica naturale del dominio di appartenenza delle istanze stesse.

• Queste proprietà fanno sì che delle istanze siano accomunate da una “somiglianza” più forte rispetto agli altri dati nella collezione.

• Il clustering richiede approcci differenti da quelli usati per classificazione e regole di associazione.

Ilaria BordinoWEKA -- ML in java Pagina 41

Page 42: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Clustering

• Lo scopo di un algoritmo di clustering è quello di suddividere un insieme di documenti in gruppi che siano quanto più possibile coerenti internamente, e allo stesso tempo diversi l’uno dall’altro.

• I documenti all’interno di un cluster dovrebbero essere quanto più possibile diversi da quelli inseriti all’interno di un altro cluster.

• Il clustering è la forma più comune di apprendimento non supervisionato: nessun uso di esperti umani per assegnare le istanze alle classi

Ilaria BordinoWEKA -- ML in java Pagina 42

Page 43: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Clustering

• Il clustering è un problema fondamentalmente diverso dalla classificazione: la classificazione è una forma di apprendimento supervisionato.

• Lo scopo della classificazione è quello di replicare una distinzione in categorie che un assessor umano ha imposto sui dati.

• L’input chiave di un algoritmo di clustering è la misura di distanza che viene usata per suddividere le istanze in gruppi.

Ilaria BordinoWEKA -- ML in java Pagina 43

Page 44: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Tipi di clustering

• Flat clustering: crea un insieme di cluster piatto, senza una struttura gerarchica che metta in relazione I cluster l’uno con l’altro.

• Hierarchical clustering: crea una gerarchia di cluster.• Hard clustering: assegna ogni istanza ad esattamente

un cluster.• Soft clustering: l’assignazione di un documento è una

distribuzione su tutti I cluster (es. LSI).• Terminologia alternativa: cluster partizionale o

esaustivo.

Ilaria BordinoWEKA -- ML in java Pagina 44

Page 45: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Clustering in Information Retrieval

• Cluster hypothesis: documenti in uno stesso cluster hanno un comportamento simile rispetto a ciò che è rilevante per soddisfare le esigenze informative degli utenti.

• Se un documento è rilevante per una richiesta di ricerca, assumiamo che anche gli altri documenti all’interno dello stesso cluster siano rilevanti.

• Il clustering ha molte applicazioni in information retrieval. Viene usato per migliorare usabilità, efficienza ed efficacia del sistema di ricerca.

Ilaria BordinoWEKA -- ML in java Pagina 45

Page 46: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Cardinalità

• Critical issue: determinare K, cardinalità di un clustering.

• Brute force approach: enumera tutti I possibili clustering e scegli il migliore. (non utilizzabile in pratica per via dell’esplosione esponenziale del numero di possibili partizioni)

• La maggior parte degli algoritmi procede per raffinamento iterativo di un partizionamento iniziale: trovare un buon punto di partenza è dunque importante per la qualità della soluzione finale.

Ilaria BordinoWEKA -- ML in java Pagina 46

Page 47: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Valutazione di un clustering:

• Obiettivo generale: alta similarità intra-cluster e bassa similarità inter-cluster (criterio interno di qualità).

• Il soddisfacimento di questo criterio non garantisce la realizzazione di un’applicazione efficace.

• Approccio alternativo: valutazione diretta nell’applicazione di interesse.

• User study: approccio immediato ma costoso.• Altra possibilità: confronta I risultati del clustering

con un golden standard

Ilaria BordinoWEKA -- ML in java Pagina 47

Page 48: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Clustering: Criteri esterni di qualità

• Purity: assegna ogni cluster alla classe che occorre più frequentemente nel cluster; accuratezza: frazione di documenti assegnati correttamente.

• Un clustering perfetto ha purity 1, mentre un clustering di cattiva qualità ha purity prossima a 0.

• Un valore elevato è facile da ottenere quando il numero di cluster è elevato: purity 1 se ogni documento è assegnato a un suo proprio cluster.

• Purity non dà info utili se cerchiamo un trade off tra la qualità del clustering e il numero di cluster.

Ilaria BordinoWEKA -- ML in java Pagina 48

Page 49: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Clustering: criteri esterni di qualità.

• Approccio alternativo: vedere il clustering come una serie di decisioni, una per ogni coppia di documenti nella collezione.

• Vogliamo assegnare due documenti ad uno stesso cluster sse sono simili

• TP: assegna due documenti simili allo stesso cluster• TN: assegna due documenti non simili a cluster

differenti• FP: assegna due documenti non simili allo stesso

cluster• FN: assegna due documenti simili a cluster diversi.

Ilaria BordinoWEKA -- ML in java Pagina 49

Page 50: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Criteri esterni di qualità

• Rand Index calcola la percentuale di decisioni corrette

• RI = (TP + TN) / (TP + TN + FP + FN)• RI assegna uguale peso a FP e FN; a volte

separare documenti simili è considerato più grave che mettere due documenti diversi in uno stesso cluster;

• F measure assegna una maggiore penalizzazione a FN.

• F = 2PR / (P+R), con P=TP/(TP+FP) e R=TP/(TP+FN)

Ilaria BordinoWEKA -- ML in java Pagina 50

Page 51: WEKA: Machine Learning Algorithms in java Ilaria Bordino

K-Means

• Flat Clustering Algorithm più importante.• Obiettivo: Minimizzare il valor medio del quadrato della

distanza euclidea dei documenti dal centro del cluster a cui sono stati assegnati.

• Il centro di un cluster è definito come la media di tutti I documenti presenti nel cluster (centroide).

• Clusterin ideale: una sfera che ha il centroide come suo centro di gravità.

Ilaria BordinoWEKA -- ML in java Pagina 51

Page 52: WEKA: Machine Learning Algorithms in java Ilaria Bordino

K-Means

• Passo iniziale: scelta di K seed casuali (centri iniziali dei cluster).

• Assegna ogni punto al cluster più vicino;• Ricalcola I nuovi centroidi;• Ripeti i passi 2 e 3 fino al raggiungimento di un qualche

criterio di convergenza.• Es. Esecuzione di un numero di iterazioni prefissato (limita

runtime, ma rischio scarsa qualità)• Assegnazione delle istanze ai cluster non cambia tra due

iterazioni successive (no garanzie su runtime)• Nella pratica, combina una soglia sullo scarto quadratico

medio con un bound sul numero di iterazioni

Ilaria BordinoWEKA -- ML in java Pagina 52

Page 53: WEKA: Machine Learning Algorithms in java Ilaria Bordino

K-Means

• La convergenza si prova mostrando che RSS decresce monotonicamente ad ogni iterazione.

• Non è garantito il raggiungimento di un minimo globale: questo è un problema se l’insieme di input contiene molti outlier.

• La scelta di un outlier come seed iniziale porta spesso alla creazione di cluster singleton.

• Occorre utilizzare metodi di inizializzazione che forniscano dei buoni seed.

Ilaria BordinoWEKA -- ML in java Pagina 53

Page 54: WEKA: Machine Learning Algorithms in java Ilaria Bordino

K-Means

• Varie soluzioni per una scelta efficace del seed set:• Esclusione degli outlier dal seed set• Provare molteplici seed e scegliere la soluzione con

minor costo;• Ottenere I centroidi iniziali applicando altri metodi

come clustering gerarchico;• Selezionare un certo numero di punti random per

ogni cluster e scegliere il loro centroide come centro iniziale del cluster.

Ilaria BordinoWEKA -- ML in java Pagina 54

Page 55: WEKA: Machine Learning Algorithms in java Ilaria Bordino

K-Means: scelta cardinalità

• Come scegliere il numero di cluster da creare?• Approccio naïve: scegli k che minimizza RSS ->

creazione di un set di singleton• Euristiche per stimare minima somma dei quadrati

dei residui in funzione di k• Introdurre una penalità per ogni nuovo cluster• Nella pratica la funzione obiettivo deve combinare

distorsione e complessità del modello.

Ilaria BordinoWEKA -- ML in java Pagina 55

Page 56: WEKA: Machine Learning Algorithms in java Ilaria Bordino

EM Clustering

• Generalizzazione di K-Means.• Model based clustering: assume che I dati siano stati

generati seguendo un modello e tenta di ricostruire il modello originale a partire dai dati.

• Questo modello definisce quindi I cluster e il modo in cui le istanze vengono assegnate ai cluster.

• Criterio std per la stima dei parametri del modello:• Maximum likelihood• Modelli di clustering più flessibili e adattabili a quello

che sappiamo sulla distribuzione dei dati.

Ilaria BordinoWEKA -- ML in java Pagina 56

Page 57: WEKA: Machine Learning Algorithms in java Ilaria Bordino

EM Clustering

• Algoritmo iterativo adattabile a vari tipi di modellazione probabilistica.

• Goal: determinare una stima a massima verosimiglianza dei parametri del modello, che dipende da alcune variabili nascoste.

• Itera un ‘alternanza di due passi:• Expectation: calcola il valore atteso della likelihood in base

alle stima corrente per la distribuzione dei parametri• Maximization: calcola I parametri che massimizzano la

verosimiglianza attesa determinata al passo precedente.• Il passo di expectation determina un’assegnazione “soft”

delle istanze ai cluster.

Ilaria BordinoWEKA -- ML in java Pagina 57

Page 58: WEKA: Machine Learning Algorithms in java Ilaria Bordino

EM Clustering

• Anche se una iterazione non diminuisce la likelihood dei dati osservati, non c’è garanzia che l’algoritmo converga ad una stima di massima verosimiglianza.

• Se I valori iniziali dei parametri non sono scelti bene, l’algoritmo potrebbe convergere a un ottimo locale.

• Per evitare questo si possono applicare varie euristiche:

• Random restart• Simulated annealing

Ilaria BordinoWEKA -- ML in java Pagina 58

Page 59: WEKA: Machine Learning Algorithms in java Ilaria Bordino

EM in Weka

• Alcune opzioni disponibili:• numClusters: setta il numero di cluster (default: -1)• maxIterations: numero massimo di Iterazioni• Seed: numero casuale usato come seed• minStdDev: minima deviazione std consentita

Ilaria BordinoWEKA -- ML in java Pagina 59

Page 60: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 60

Page 61: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 61

Page 62: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Feature Selection

• Obiettivo: selezionare un sottoinsieme di feature rilevanti per costruire modelli di learning robusti.

• Elimina le feature non rilevanti o rilevanti.• Migliora le prestazioni dei modelli di learning:• Allevia problemi dovuti a esplosione dimensionale• Rafforza la capacità di generalizzazione del modello• Velocizza il processo di learning• Migliora la leggibilità del modello• Permette di acquisire una migliore conoscenza dei dati

evidenziandone le proprietà più importante.

Ilaria BordinoWEKA -- ML in java Pagina 62

Page 63: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Feature Selection

• Teoricamente, una selezione ottimale richiede l’esplorazione esaustiva dello spazio di tutti I possibili sottoinsiemi di feature

• Nella pratica si seguono due diversi approcci:• Feature Ranking: usa una metrica per ordinare le

feature ed elimina tutte le feature che non ottengono uno score adeguato.

• Subset Selection: cerca l’insieme di possibili feature per il sottoinsieme ottimale.

Ilaria BordinoWEKA -- ML in java Pagina 63

Page 64: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Feature Selection: Subset selection

• Valuta la bontà di un insieme di features.• Molte euristiche per la ricerca delle feature si basano

su greedy hill climbing: valuta iterativamente un sottoinsieme candidato di feature, quindi modifica tale insieme e valuta se l’insieme ottenuto è migliore del precedente.

• La valutazione degli insiemi di feature richiede l’uso di opportune metriche.

• La ricerca esaustiva non è in genere praticabile; al raggiungimento di un criterio di arresto si restituisce l’insieme di feature che ha ottenuto il punteggio più alto.

Ilaria BordinoWEKA -- ML in java Pagina 64

Page 65: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Feature Selection: Subset Selection

• Possibili euristiche per la ricerca:• Esaustiva• Best first• Simulated annealing• Algoritmi genetici• Greedy forward selection• Greedy backward elimination

Ilaria BordinoWEKA -- ML in java Pagina 65

Page 66: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Feature Selection

• Possibili criteri di arresto:• Lo score assegnato ad un certo insieme supera una

certa soglia;• Il tempo di computazione supera un massimo

prestabilito.

Ilaria BordinoWEKA -- ML in java Pagina 66

Page 67: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 67

Page 68: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 68

Page 69: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 69

Page 70: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 70

Page 71: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 71

Page 72: WEKA: Machine Learning Algorithms in java Ilaria Bordino

Ilaria BordinoWEKA -- ML in java Pagina 72