classification and genetic algorithms

12
Wilt Data Classification Algoritmi Genetici per problemi di classificazione Autore: Zoia Alessandro Introduzione Il concetto da apprendere è rappresentato dalla classificazione di un albero come malato oppure no in base ai dati forniti dal satellite Quickbird. QuickBird è il satellite secondo migliore al mondo ad alta risoluzione. Lanciato in orbita dalla DigitalGlobe il 18 ottobre 2001 dalla base Vandenberg Air Force CA, fino al 2007 ha offerto alle industrie leader del settore un risoluzione delle immagini multispettrale pancromatica e a 4 bande (i.e. blue, green, red and near-infrared) . I dati che costituiscono l'insieme di training e di testing, sono caratterizzati dai seguenti attributi : GLCM_Pan Mean_G Mean_R Mean_NIR SD_Pan GLCM mean texture (Pan band) Mean green value Mean red value Mean NIR value Standard deviation (Pan band) Tabella attributi Mentre l'attributo di classificazione è indicato con class è può assumere il valore w se l'albero è classificato malato oppure n se non lo è. Immagine dal sito https://apollomapping.com

Upload: alessandro-zoia

Post on 13-Apr-2017

102 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Classification and genetic algorithms

Wilt Data Classification

Algoritmi Genetici per problemi di classificazione

Autore: Zoia Alessandro

Introduzione

Il concetto da apprendere è rappresentato dalla classificazione di un albero come malato oppure noin base ai dati forniti dal satellite Quickbird. QuickBird è il satellite secondo migliore al mondo adalta risoluzione. Lanciato in orbita dalla DigitalGlobe il 18 ottobre 2001 dalla base Vandenberg AirForce CA, fino al 2007 ha offerto alle industrie leader del settore un risoluzione delle immaginimultispettrale pancromatica e a 4 bande (i.e. blue, green, red and near-infrared) .

I dati che costituiscono l'insieme di training e di testing, sono caratterizzati dai seguenti attributi :

GLCM_Pan Mean_G Mean_R Mean_NIR SD_Pan

GLCM meantexture (Panband)

Mean green value Mean red value Mean NIR value Standarddeviation(Pan band)

Tabella attributi

Mentre l'attributo di classificazione è indicato con class è può assumere il valore w se l'albero

è classificato malato oppure n se non lo è.

Immagine dal sito https://apollomapping.com

Page 2: Classification and genetic algorithms

Rappresentazione dei dati

Gli attributi che definiscono i dati sono a valori continui, e più precisamente, in questo caso numerireali positivi. Seguendo l'approccio sugli attributi a valori continui di Tom Mitchell (MachineLearning capitolo 3 par. 3.7.2), definiamo per ciascun attributo A un nuovo attributo booleano Acche assumerà il valore true se Ac < c, false altrimenti. Con c indichiamo un valore di soglia dadeterminare. Procedendo in questo modo definiamo per ogni attributo il suo equivalente booleano

GLCM_Pan_b Mean_G_b Mean_R_b Mean_NIR_b SD_Pan_b

true/false true/false true/false true/false true/false

Per ciascun attributo i valori di soglia vengono determinati attraverso le seguenti fasi:

• I dati di training vengono ordinati in modo crescente sull'attributo considerato.• Si individuano i punti adiacenti in corrispondenza dei quali il target value cambia di valore

da una classe all'altra ( w → n oppure n → w).• Se indichiamo con w=1 e n=0 i due possibili valori booleani che il target value può

assumere, il valore di soglia si calcola come ( V1(A)+V0(A) ) / 2. Dove V1(A) è il valore cheassume l'attributo sul taining sample con target value 1 e V0(A) è il valore che assumel'attributo sul training sample con target value 0.

• Dall'insieme dei valori cosi ottenuti , vogliamo selezionare quello che massimizza l'information gain. Calcoliamo quindi per ciascun valore di soglia T il suo gain:

gain(S,T) = ( Entropy(S) - [ (|T+| / |S| ) * Entropy(T+) + (|T-|/ |S| ) * Entropy(T-) ] )

Dove S è l'insieme dei dati di training,T+ il sottoinsieme di S rappresentato dagli elementi che assumono un valore al di sotto della soglia T sull'attributo considerato, mentre T- rappresenta il sottoinsieme di S degli elementi al di sopra della soglia T, sempre sull'attributo considerato.

• Selezioniamo per l'attributo la soglia T che massimizza il gain. Tutti i valori dell'attributo al di sotto di questa soglia avranno ,nel nuovo attributo discreto associato, valore true, false altrimenti.

Si costruisce cosi un nuovo insieme di dati di training dove ciascun attributo è sostituito dal suoequivalente booleano in base alle soglie individuate.

Page 3: Classification and genetic algorithms

Spazio delle ipotesi

Con la rappresentazione dei dati definita, lo spazio delle ipotesi può essere rappresentato attraversocongiunzioni di vincoli sugli attributi del seguente tipo:

1) Valore true , il vincolo impone all''attributo che il suo valore sia al di sotto della sua soglia

2) Valore false, il vincolo impone all'attributo che il suo valore sia al di sopra della sua soglia

3) Valore indifferente true o false, nessuna imposizione sul valore dell'attributo. Indichiamo questo caso con il simbolo *.

Un esempio di ipotesi è la seguente:

H = < * , true, false, *, true>

1° 2° 3° 4° 5°

In questo caso tutti i dati di training per i quali il valore del secondo attributo è al di sotto dellasoglia, quello del terzo al di sopra della soglia e l'ultimo al di sotto della soglia ,soddisferannol'ipotesi e saranno classificati dalla stessa come positivi (albero malato).

Per la rappresentazione dell'ipotesi come stringa di bit , si è scelto di utilizzare 2 bit per ciascunattributo codificando nel seguente modo i valori true,false,indifferente :

a) Coppia di bit 01 true

b) Coppia di bit 00 false

c) Coppia di bit 11 indifferente

d) Coppia di bit 10 indifferente

Con questa rappresentazione l'ipotesi H = < * , true, false, *, true> si codifica con uno dei seguenti cromosomi:

1) 11 01 00 11 01

2) 11 01 00 10 01

3) 10 01 00 11 01

4) 10 01 00 10 01

Nell'algoritmo la popolazione sarà costituita da sequenze binarie di questo tipo.

Page 4: Classification and genetic algorithms

Genetic Algorithm

Decidiamo di affrontare il problema di classificazione partendo dall'algoritmo genetico cosi come presentato da Russell/Norvig ( Artificial Intelligence a Modern approach, capitolo 4 par 4.1.4). In questa versione l'algoritmo è descritto dalla seguente funzione scritta in pseudo codice:

function GENETIC-ALGORITHM ( population , FITNESS-FN ) return an individual

inputs: population, a set of individuals

FITNESS-FN, a function that measures the fitness of an individual

repeat

new_population ← empty set

for i:=1 to SIZE(population) do

x ← RANDOM-SELECTION(population,FITNESS-FN)

y ← RANDOM-SELECTION(population,FITNESS-FN)

child ← REPRODUCE(x,y)

if( small random probability ) then child ← MUTATE(child)

add child to new_population

population ← new_population

until some individual is fit enough, o enough time has elapsed

return the best individual in population, according to FITNESS-FN

La selezione degli individui avviene in modo random, mentre il tipo di cross over scelto perl'implementazione è il classico single point. In questa versione dell'algoritmo la riproduzione davita ad un singolo figlio e la popolazione viene mantenuta costante. L'implementazione fornita inquesto progetto varia questo aspetto producendo due figli. Mantenendo fissa la politica di crossover, sono state realizzate, all'interno del codice, altre due varianti di algoritmi genetici. La primamodifica l'algoritmo di Russell Norvig sostituendo alla funzione RANDOM-SELECTION unafunzione RANK-SELECTION che seleziona di volta in volta, per la riproduzione, le due ipotesi conil miglior valore di fitness. La seconda variante implementa invece l'algoritmo di GABIL ( MachineLearning par. 9.2 capitolo 9). In questa implementazione un'ipotesi viene selezionata con unaprobabilità pari a :

P(Hi) = FitnessFN(Hi) / ∑ FitnessFN ( H j)

Dove FitnessFN(Hi) indica il valore di fitness dell'ipotesi Hi . La funzione di fitness è definitacome la percentuale di dati di training classificati correttamente da un'ipotesi(individuo dellapopolazione). Nel nostro caso la definiamo come:

F(h) = ( correctW(x) + correctN(x) ) / 2

Page 5: Classification and genetic algorithms

dove correctW(x) restituisce la percentuale di dati di training classificati correttamente come tipo We correctN(x) la percentuale di dati di training classificati correttamente di tipo N.

Genetic Algorithm, implementazione in Java

Partendo dalla soluzione descritta da Russel/Norvig, definiamo un insieme di classi che realizzano iltemplate generale dell'algoritmo e che lo specializzano al caso dei dati Wilt:

Classe astratta GA Template dell'algoritmo

Classe astratta GAHypothesis Modella un'ipotesi come stringa di bit

Classe WiltGA Specializza GA al caso Wilt

Classe WiltGAHypothesis Specializza GAHypothesis al caso Wilt

Classi TrainingSet e TestingSet Classi per il caricamento dei dati

Classe Main Classe principale per il lancio del programma

Classe Plotter Classe per il plotting dei dati

La classe GAHypothesis modella la struttura generale di un ipotesi per un problema diclassificazione booleano con valori booleani sugli attributi. La struttura per rappresentare la stringadi bit del cromosoma dell'ipotesi, è rappresentata da un oggetto della classe BitSet adatta arappresentare sequenze di bit. La classe mantiene inoltre come variabili di istanza il suo fitnessvalue e la lunghezza della stringa del cromosoma. La classe presenta il metodo astrattosatisfy(boolean[] values) che lascia alla sottoclasse il compito di specializzare il come un'ipotesi èsoddisfatta dai dati in input.

GA è la classe che, attraverso il pattern Template, realizza la struttura generica dell'algoritmogenetico visto precedentemente. Mantiene come variabili di istanza la popolazione corrente, la suadimensione, la percentuale di soglia da raggiungere sulla classificazione dei corretta dei dati , chefa quindi terminare l'algoritmo, ed infine la probabilità di mutazione di un child dopo lariproduzione da due ipotesi genitore. Richiede l'implementazione dei seguenti metodi astratti:

protected abstract void generatePopulation();

protected abstract GAHypothesis reproduce(GAHypothesis h1,GAHypothesis h2);

protected abstract void mutate(GAHypothesis h);

protected abstract void computeFitnessValue(GAHypothesis h);

Per la generazione della popolazione iniziale, la riproduzione di due ipotesi, la mutazione delsingolo bit di un'ipotesi, il calcolo del valore di fitness di un'ipotesi. WiltGA si occupa di estendereGA implementando questi metodi. WiltGAHypothesis estende GAHypothesis implementando ilmetodo satisfy() ed aggiungendo i metodi classify() e getWiltRepresentation() per,rispettivamente,classificare un dato ed ottenere una stampa informativa dell'ipotesi nel seguente formato:

Page 6: Classification and genetic algorithms

Wilt Hypothesis : [ <value> GLCM_pan Threshold=126.83133 ]

[ <value> Mean_Green Threshold=233.90659 ]

[ <value> Mean_Red Threshold=117.292435 ]

[ <value> Mean_NIR Threshold=534.1047 ]

[ <value> SD_pan Threshold=24.924597 ]

dove si indicano i nomi degli attributi, il valore di soglia di un attributo e il parametro <value> che può essere una delle seguenti stringhe: Up, Down, *. Con Up diciamo che l'ipotesi impone il vincolo maggiore del valore di soglia, con Down minore del valore di soglia, con * indifferente.

Come il nome suggerisce le classi TrainingSet e TestingSet permettono di caricare i dati presenti nei file training.csv e testing.csv, fornendo metodi di accesso ai dati caricati.La classe Main lancia permette di lanciare l'algoritmo per mostrare i risultati ottenuti.

Test e analisi dell'algoritmo

Le pagine che seguono illustrano diversi lanci dell'algoritmo nelle diverse implementazioni. Irisultati ottenuti evidenziano una mancanza di stabilità nel fornire la soluzione migliore da partedell'algoritmo con selezione random. Questo risultato dipende probabilmente dal fatto che nonvengono propagate in avanti le soluzioni più promettenti, affidando di volta in volta ad unaselezione casuale la costruzione della generazione successiva. Con la modalità rank e roulette wheelselection si ottengono risultati migliori, queste implementazioni tendono stabilmente a fornire lamigliore soluzione che si attesta intorno al 83% e 79% circa di accuratezza nellaclassificazione,rispettivamente, di dati di training e di test.

Page 7: Classification and genetic algorithms

Genetic Algorithm random selection

Test A75.0% testing accuracy81.34216% training accuracyGA string:0001001010

Mutazione con probabilità del 5%

Page 8: Classification and genetic algorithms

Genetic Algorithm random selection

Test B55.0% testing accuracy78.52397% training accuracyGA string:1001110101

Mutazione con probabilità del 5%

Page 9: Classification and genetic algorithms

Genetic Algorithm rank selection

Test A78.4% testing accuracy82.56456% training accuracyGA string:1001001111

Mutazione con probabilità del 5%

Page 10: Classification and genetic algorithms

Genetic Algorithm rank selection

78.4% testing accuracy82.56456% training accuracyGA string:1001001011

Mutazione con probabilità del 5%

Page 11: Classification and genetic algorithms

Genetic Algorithm roulette wheel selection

Test A78.4% testing accuracy82.56456% training accuracyGA string:1101001111

Elementi della popolazione che sopravvivono 20/100Mutation rate del 5%

Page 12: Classification and genetic algorithms

Genetic Algorithm roulette wheel selection

Test B78.4% testing accuracy82.56456% training accuracyGA string:1101001111

Elementi della popolazione che sopravvivono 30/100Mutation rate del 10%