Sei sulla pagina 1di 11

Esercitazione Corso Data mining : clustering sul dataset Warlogs

Mauro Barone matr. 416666

Indice 1. I dati 2. Pre-processing dei dati 3. Il problema 4. Simple k-means 5. DBscan

pag. 2 2 3 3 9

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 1. I dati I dati sono estratti dal dataset pubblicato dal sito WikiLeaks il 22 Ottobre 2010 contenente i report di guerra in Iraq dal 2004 al 2009 e sono stati filtrati e semplificati in una tabella relazionale, i cui attributi vengono descritti di seguito: report_key | text: chiave univoca del rapporto to_timestamp | timestamp: la data di emissione del rapporto (precisione fino al minuto) Type | text: Macro-classificazione degli eventi di ogni rapporto category | text: Classificazione specifica di ogni rapporto region | text: classificazione della localizzazione dell'evento attack_on | text: obiettivo dell'evento/attacco del rapporto coalition_forces_wounded | integer: numero di alleati feriti nell'evento/attacco coalition_forces_killed | integer: numero di alleati uccisi nell'evento/attacco iraq_forces_wounded | integer: numero di soldati iracheni feriti nell'evento/attacco iraq_forces_killed | integer: numero di soldati iracheni uccisi nell'evento/attacco civilian_wia | integer: numero di civili feriti nell'evento/attacco civilian_kia | integer: numero di civili uccisi nell'evento/attacco enemy_wia | integer: numero di nemici feriti nell'evento/attacco enemy_kia | integer: numero di nemici uccisi nell'evento/attacco enemy_detained | integer: numero di nemici catturati nell'evento/attacco total_deaths | integer: numero di morti totali per l'evento/attacco st_x | numeric: longitudine della posizione dell'evento/attacco st_y | numeric: latitudine della posizione dell'evento/attacco

2. Pre processing dei dati I termini di alcuni attributi contengono alcuni errori/ripetizioni. Si pu verificare se questi errori emergono all'interno del clustering. Sin dal caricamento dei dati in Weka possibile osservare come lattributo Type contenga come valori: Criminal Event, criminal event e CRIMINAL EVENT (le rispettive frequenze osservate sono 24.356, 1, 3) e EXPLOSIVE HAZARD, Explosive Hazard (le rispettive frequenze sono 1 e 9878). Dal nome e dalle frequenze osservate per tali valori di Type, appare evidente che le etichette criminal event, CRIMINAL EVENT ed EXPLOSIVE HAZARD costituiscono delle ripetizioni di valori. Un possibile modo di verificare se tali ripetizioni emergono nel clustering potrebbe essere quello di applicare ai dati un algoritmo come k-means ponendo k=9 (pari alla differenza tra 12, i valori di Type, e 3, i valori duplicati ), selezionando come unico attributo Type. A questo punto, le istanze con i valori di Type pi rari entrano a far parte dei cluster di maggiore numerosit. Pertanto lalgoritmo non considera questi punti come costituenti gruppi a s stanti (seppure di numerosit molto ridotta), ma come punti di cluster pi numerosi (vedi allegato A). Inoltre, si osserva come nel dataset warlogs2000 i valori dellattributo Type siano 9 e non 12. Questo conferma lipotesi che le etichette con poche frequenze rappresentino effettivamente errori o outliers, che non vengono rilevati nel campione di osservazioni pi ristretto.

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 3. Problema Si richiede una analisi dei dati forniti utilizzando i metodi di clustering forniti da Weka mettendo in relazione i diversi tipi (attributo Type) di attacco e le distribution di morti, feriti e nemici catturati. Per ogni clustering effettuato necessario fornire una motivatione/spiegazione del risultato in base al valore degli altri attributi (es. correlazione tra diversi attributi e classe di clustering). Provare a selezionare sottoinsiemi di attributi per eseguire clustering separati 4. Simple k-means

4.1 Morti, feriti e prigionieri - Type Un possibile Clustering quello che considera tutti e soli gli attributi relativi al conteggio di morti, feriti e prigionieri di ogni operazione militare (sia che riguardino nemici che forze della coalizione), in modalit classes to clusters1 utilizzando lattributo Type come classe e ponendo k=9, tanti quanti sono i Tipi reali (Allegato B). Il clustering in modalit Classes to cluster evaluation con variabile classe Type mette in luce che: solo a 8 clusters dei 9 generati viene data unetichetta, in quanto il cluster 6 risulta essere composto da osservazioni che realmente appartengono a troppi tipi, con una prevalenza (circa la met) di operazioni di tipo Explosive Hazard, cui per viene riservato il cluster 7. lalgoritmo verifica quante istanze del dataset vengono classificate correttamente in base allattributo Type (considerato che il valore di tale attributo noto per ogni osservazione) e si ottiene che circa il 47% delle osservazioni non viene riconosciuto correttamente (risultati simili si ottengono anche modificando il valore di seed, che governa la scelta iniziale dei centroidi).

Il risultato ottenuto spiegabile tenendo conto delle caratteristiche dellalgoritmo utilizzato e in particolare dei suoi limiti in relazione a determinate tipologie di cluster. In particolare, si ricorda che lalgoritmo k-means un metodo partizionale basato su centroidi e per sua natura ha delle difficolt nel distinguere i cluster naturali se questi hanno una numerosit molto diversa tra loro e diverse densit, oltre che forma non convessa (sferica). Nella fattispecie, i gruppi di ciascun Type presentano numerosit molto variegate tra loro, e alcuni gruppi predominano su altri, come da tabella che segue:

Classes to clusters evaluation. In this mode Weka first ignores the class attribute and generates the clustering. Then during the test phase it assigns classes to the clusters, based on the majority value of the class attribute within each cluster. Then it computes the classification error, based on this assignment and also shows the corresponding confusion matrix. Tratto da http://www.cs.ccsu.edu/~markov/ccsu_courses/DataMining-Ex3.html

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666

Type Criminal Event Enemy Action Explosive Hazard Friendly Action Friendly Fire Non-Combat Event Other Suspicious Incident Threat Report Totale

Numero Operazioni 24.360 11.681 9.879 4.636 184 1.107 146 32 23 52.048

Il cluster etichettato come Criminal Event finisce per attrarre anche gli elementi di altri cluster e quindi vengono considerati di questo cluster molte istanze che sono, in realt, di altri Type. Il risultato ottenuto si spiega anche tenendo conto del fatto che moltissime delle operazioni militari, indipendentemente dal tipo, si concludono con un solo civile ferito. Quindi il punto (0,0,1,0,0,0) denota di per s oltre 20.000 osservazioni che vengono raggruppate in un cluster solo, che viene etichettato con Criminal event (perch di tale gruppo costituisce la parte predominante):

Type

Enemy_kia

Criminal Event Enemy Action Explosive Hazard Friendly Action Friendly Fire Non-Combat Event Other Suspicious Incident Threat Report

0 0 0 0 0 0 0 0 0

Coalition forces killed 0 0 0 0 0 0 0 0 0

Civilian kia 1 1 1 1 1 1 1 1 1

Enemy wia 0 0 0 0 0 0 0 0 0

Coalition forces wounded 0 0 0 0 0 0 0 0 0

Civilian wia 0 0 0 0 0 0 0 0 0

Num operazioni 17.104 1.953 885 573 55 195 33 9 10

Tutti questi dati vengono inseriti nel Cluster 0 (le coordinate del centroide di riferimento per questo cluster confermano quanto appena affermato, essendo tutte prossime allo 0, tranne quella relativa ai civili uccisi, di poco superiore a 1). Altri possibili Clustering possono considerare solo alcuni degli attributi che descrivono i dati. Ad esempio, possibile considerare come variabili solo nemici morti nemici feriti nemici catturati sempre in modalit classes to clusters2 utilizzando lattributo Type come classe e ponendo sempre k=9.

Classes to clusters evaluation. In this mode Weka first ignores the class attribute and generates the clustering. Then during the test phase it assigns classes to the clusters, based on the majority value of the class attribute within each cluster. Then it computes the classification error, based on this assignment and also shows the corresponding confusion matrix http://www.cs.ccsu.edu/~markov/ccsu_courses/DataMining-Ex3.html

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 Lobiettivo sempre quello di raggruppare le osservazioni contenute nel dataset, considerando solo il numero di morti, feriti e prigionieri nemici, e verificare poi se a tali gruppi corrispondano dei ben precisi tipi di operazioni militari. Il clustering in modalit Classes to cluster evaluation con variabile classe Type mette in luce che: solo ai 5 cluster pi numerosi, dei 9 ottenuti, viene data unetichetta, mentre ai 4 di minore numerosit viene sostanzialmente dato il valore di noise; lalgoritmo verifica quante istanze del dataset vengono classificate correttamente in base allattributo Type (considerato che il valore di tale attributo noto per ogni osservazione) e si ottiene che circa il 46% delle osservazioni non viene riconosciuto correttamente (risultati simili si ottengono anche modificando il valore di seed, che governa la scelta iniziale dei centroidi)..

Il risultato ottenuto (Allegato C) spiegabile tenendo conto delle caratteristiche dellalgoritmo utilizzato e in particolare dei suoi limiti in relazione a determinate tipologie di cluster. Valgono le stesse considerazioni svolte in precedenza sullalgoritmo k-means e inoltre si deve tenere presente che moltissime delle operazioni militari, indipendentemente dal tipo, si concludono con nessun morto o ferito o prigioniero nemico. Quindi il punto (0,0,0) denota di per s oltre 40.000 osservazioni che vengono raggruppate in un cluster solo, che viene etichettato con Criminal event (perch di tale gruppo costituisce la parte predominante):
Type Criminal Event Enemy Action Esplosive Hazard Friendly Action Friendly Fire Non-Combat Event Other Suspicious Incident Threat Report Enemy_kia 0 0 0 0 0 0 0 0 0 Enemy_wia 0 0 0 0 0 0 0 0 0 Enemy_detained 0 0 0 0 0 0 0 0 0 Operazioni 24.078 8.391 6.795 998 165 1.075 128 21 19

Tutti questi dati vengono inseriti nel Cluster 0 , che contiene 42.524 unit (le coordinate del centroide di riferimento per questo cluster confermano quanto appena affermato, essendo tutte prossime allo 0). 4.2 Morti, feriti e prigionieri Region Un altro possibile Clustering quello che considera tutti e soli gli attributi relativi al conteggio di morti, feriti e prigionieri di ogni operazione militare (sia che riguardino nemici che forze della coalizione), in modalit classes to clusters utilizzando lattributo Region come classe e ponendo k=8, pari al numero di Regioni (Allegato AA). Il clustering in modalit Classes to cluster evaluation con variabile classe Region mette in luce che: lalgoritmo, verificando quante istanze sono classificate correttamente secondo il valore dellattributo Region (considerato che tale attributo noto per ogni osservazione), mostra che circa il 53% delle osservazioni non viene riconosciuto correttamente (risultati simili si ottengono anche modificando il valore di seed, che governa la scelta iniziale dei centroidi).

Il risultato ottenuto spiegabile tenendo conto delle caratteristiche dellalgoritmo utilizzato e in particolare dei suoi limiti in relazione a determinate tipologie di cluster. Nella fattispecie, i gruppi di ciascuna Region presentano numerosit molto variegate tra loro, e alcuni gruppi predominano su altri, come da tabella che segue:

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666

Region

Numero Operazioni 49 23.783 4.678 15.944 64 378 2.680 4.472 52.048

MND-BAGHDAD MND-C MND-N MND-NE MND-S MND-SE MNF-W Totale

Il cluster riguardante Baghdad finisce per attrarre anche gli elementi di altri cluster e quindi vengono considerati di questo cluster molte osservazioni che sono, in realt, di altre Region. Il risultato ottenuto si spiega anche tenendo conto de fatto che moltissime delle operazioni militari, indipendentemente dal tipo, si concludono con un solo civile ferito (dato gi riscontrato, per altro, nellanalisi precedente). Quindi il punto (0,0,1,0,0,0) denota di per s oltre 20.000 osservazioni che vengono raggruppate in un cluster solo, che viene etichettato con Baghdad (perch di tale gruppo il maggior numero di osservazioni si registra a Baghdad):

Region

Enemy_kia

Coalition forces killed 0 0 0 0 0 0 0 0

Civilian kia 1 1 1 1 1 1 1 1

Enemy wia 0 0 0 0 0 0 0 0

MND-BAGHDAD MND-N MND-C MND-SE MNF-W MND-S MND-NE

0 0 0 0 0 0 0 0

Coalition forces wounded 0 0 0 0 0 0 0 0

Civilian wia 0 0 0 0 0 0 0 0

Num operazioni 12.202 4.870 1.709 1.520 408 74 20 14

Tutti questi dati vengono inseriti nel Cluster 0 (le coordinate del centroide di riferimento per questo cluster confermano quanto appena affermato, essendo tutte prossime allo 0, tranne quella relativa ai civili uccisi, di poco superiore a 1). Si potrebbe a questo punto indagare sulla relazione esistente tra Type e Region. 4.3 Type Region. Il clustering in modalit Classes to cluster evaluation, considerando quale variabile solo Type, ponendo k=9 e variabile classe Region (allegato BB), mette in luce che: allesame di quante istanze vengono classificate correttamente secondo il valore della regione, (considerato che tale attributo noto per ogni record del dataset) si ottiene che circa il 56% delle osservazioni non viene riconosciuto correttamente (risultati simili si ottengono anche modificando il valore di seed, che governa la scelta iniziale dei centroidi).

Il risultato ottenuto spiegabile tenendo conto delle caratteristiche dellalgoritmo utilizzato e in particolare dei suoi limiti in relazione a determinate tipologie di cluster.

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 Nella fattispecie, i gruppi di ciascun Type presentano numerosit molto variegate tra loro, e alcuni gruppi predominano su altri, come da apposita tabella sopra riportata. Ci provoca il formarsi di un cluster molto pi numeroso degli altri; ci, unito al fatto che anche le osservazioni riguardanti Baghdad sono la maggioranza, fa s che questo cluster sia etichettato come Baghdad, ma in realt vi fanno parte molte osservazioni registrate in altre Regioni. Tale risultato si spiega anche tenendo conto de fatto che moltissime delle operazioni militari, indipendentemente dal tipo, si concludono con un solo civile ferito (dato gi riscontrato, per altro, nellanalisi precedente). Dal clustering effettuato si dovrebbe concluderebbe quindi che le operazioni di Type Criminal Event si registrino solo a Baghdad. Posto che invece la maggioranza dei Criminal Event che si verifica a Baghdad, possibile essere pi precisi su Baghdad stessa? Ovvero: una volta determinato un clustering del dataset, possibile selezionare uno dei cluster come un dataset separato per eseguire ulteriori analisi solo sul gruppo scelto? ( necessario l'uso di filtri esterni a Weka). Si osserva che i clustering sopra condotti raggruppano i dati sulla base di morti e feriti provocati dalle varie operazioni di guerra. Per utilizzare i singoli cluster ottenuti come dataset di partenza al fine di eseguire ulteriori analisi, occorrerebbe verificare lomogeneit delle istanze di cui si compongono tali cluster. Ad esempio, se il clustering effettuato prendendo quali variabili morti e feriti producesse dei gruppi, ciascuno dei quali contenenti punti per lo pi dello stesso Type, si potrebbe indagare sulla ripartizione territoriale di un dato tipo di operazione militare, analizzando il relativo cluster. Allo stesso modo, preso un determinato gruppo che individua una particolare Regione, si potrebbe analizzare la distribuzione dei Tipi delle operazione ivi effettuate semplicemente analizzandone il cluster. Tuttavia, dai dati sopra riportati, per le caratteristiche dei cluster prodotti dallalgoritmo, questo tipo di analisi porterebbe a conclusioni poco attendibili, considerati gli errori di etichettatura commessi, che sono dellordine del 50%. Se allora si fosse interessati ad esempio ad analisi su singoli gruppi territoriali ritenuti rilevanti (ad esempio distinguendo i dati tra quelli originati a Baghdad e quelli originati nel resto dellIraq), converrebbe utilizzare i filtri disponibili in Weka stesso.

4.4 Morti, feriti, prigionieri Tipi presenti in Baghdad Mediante lutilizzo del filtro SubsetByExpression con lespressione ATT5 is MND-BAGHDAD3 si ottiene il dataset delle sole operazioni compiute in Baghdad (23.783 istanze). Eseguendo lalgoritmo k-means per verificare se dalle distribuzioni di morti e feriti si possa risalire al Tipo delloperazione, i risultati migliorano, rispetto al caso precedente condotto su tutto il dataset. Lalgoritmo infatti pi preciso e commette errori nella misura del 32% (allegato Bag1). Infatti, a Baghdad si accentua la frequenza dei Criminal Event rispetto alle altre tipologie e quindi anche se lalgoritmo sovrastima tale tipo di operazione (gli assegna un cluster di 19.688 unit, mentre in realt i criminal events a Baghdad sono 14.986), nel complesso la percentuale di errori commessa minore. Inoltre, lalgoritmo, bench operi in presenza di cluster di dimensione eterogenea (e quindi in condizioni avverse) riesce comunque a mantenere la proporzione rispetto ai dati veri, anche se i gruppi etichettati con Enemy Action e Explosive Hazard escono un po ridimensionati rispetto alla realt.

Il quinto attributo nel dataset Region.

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 Alcuni attributi hanno un ruolo di classe (ad esempio, l'attributo region). Verificare che la correlazione con gli attributi st_x e st_y sia valida. Per effettuare tale verifica, si pu eseguire lalgoritmo con le sole variabili st_x e st_y, in modalit Classes to clusters, con Region che funga da Classe. k andrebbe posto uguale al numero di regioni (8). I risultati sono nellallegato D. Lalgoritmo non preciso al massimo in quanto il 26% delle osservazioni non viene inserito nel reale cluster di appartenenza. Ci spiegabile sia in termini di numerosit delle singole regioni (forte prevalenza delle operazioni militari in Baghdad, come visto), sia dalla forma non convessa delle regioni stesse:

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 5. DBSCAN

5.1 Morti, feriti, prigionieri Tipo Come nel caso dellalgoritmo k-means, si pu eseguire DBSCAN considerando tutti e soli gli attributi relativi al conteggio di morti, feriti e prigionieri di ogni operazione militare (sia che riguardino nemici che forze della coalizione), in modalit classes to clusters utilizzando lattributo Type come classe4. A seconda dei valori utilizzati per e MinPts si ottengono clustering diversi in termini di: numero di clusters generati dallalgoritmo; percentuale di errori commessi nellattribuzione dei cluster al Tipo di operazione; numero di istanze considerate quali noise e quindi non inserite in alcun cluster

MINPTS

CLUSTERS GENERATI 27 13 10 9 12 9 5 4 4 3 2 2

PERCENTUALE DI ERRORI 42% 37,2% 35% 34% 44,05% 42,3% 39,95% 38,55% 50,45% 49,5% 48,7% 48,05%

PUNTI NON CLUSTERIZZATI (NOISE) 344 440 484 505 158 198 251 285 72 92 111 125

0.01

5 10 15 20

0.05

5 10 15 20

0.09

5 10 15 20

Tabella dei risultati con = 0,01 - 0,05 - 0,09 e minPts = 5, 10, 15, 20

In generale quindi si osserva che: A parit di minPts, al crescere di aumentano gli errori; diminuiscono i punti considerati noise; diminuisce il numero di cluster generati;

Possibili spiegazioni di quanto osservato possono essere: allaumentare di aumenta (comunque non diminuisce) il numero di punti core e border, e quindi automaticamente diminuiscono (non aumentano) i punti classificati come noise;

Il Clustering stato effettuato sul dataset warlogs2000 (per esigenze di memoria). Si osserva comunque che i punti di questo dataset riproducono le caratteristiche del dataset completo: maggiore densit dei dati nella regione di Baghdad e predominanza dei Tipi Criminal Event (887), Enemy Action (477) e Explosive Hazard (401).

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 la precisione dei cluster pu diminuire perch allaumentare di essi tendono ad essere meno selettivi e quindi raccolgono man mano punti che sono meno omogenei, con maggiore possibilit di errore (la densit media dei cluster diminuisce allaumentare di , tenendo minPts fermo); il numero di cluster diminuisce perch allaumentare di si abbassa la soglia della densit dei cluster che quindi possono venire accorpati tra loro (per esempio, due cluster separati da una zona di rumore non molto meno densa, se si abbassa la soglia, possono venire uniti, nel caso in cui la stessa soglia diventi abbastanza bassa da promuovere a membro di un cluster quello che prima era considerato rumore).

A parit di , al crescere di minPts diminuiscono gli errori aumentano i punti considerati noise. diminuisce il numero di cluster generati.

Il risultato ottenuto spiegabile in quanto: allaumentare di minPts aumenta la densit media dei cluster e quindi aumenta la probabilit che nel cluster vi siano punti effettivamente simili e ci comporta una diminuzione degli errori; aumentando la densit media dei cluster, si estende anche larea dei punti di densit non sufficiente ad essere considerati parti di un cluster e quindi aumenta il noise; il numero di cluster diminuisce perch allaumentare di minPts aumenta la soglia della densit dei cluster, e quindi diventa pi difficile per un gruppo di punti essere considerato un cluster e non noise.

Si osserva quindi che una variazione della densit media di un cluster pu portare sia ad un aumento dei cluster generati, che ad una loro diminuzione. Se lobiettivo fosse quello di etichettare i cluster generati dallalgoritmo sulla base dellattributo Region, otterremmo, per = 0,05 e minPts 5, 10, 15 e 20 i seguenti dati (il clustering di per s uguale a precedente, cambia solo la percentuale di errori):

minPts 5

Clusters generati 12 9 5 4

Percentuale di errori 50,6% 48,95% 46,5% 45,05%

Punti non clusterizzati 158 198 251 285

0.05

10 15 20

Tabella dei risultati con = 0,05 e minPts = 5, 10, 15, 20

5.2 Morti, feriti, prigionieri Tipi presenti in Baghdad

Mediante lutilizzo del filtro SubsetByExpression con lespressione ATT5 is MND-BAGHDAD si ottiene il dataset delle sole operazioni compiute in Baghdad (879 istanze). Eseguendo lalgoritmo DBSCAN per verificare se dalle distribuzioni di morti e feriti si possa risalire al Tipo delloperazione, i risultati migliorano, rispetto al caso precedente condotto su tutto il dataset. Lalgoritmo infatti pi preciso e commette errori nella misura del 20% per valori di utilizzati in precedenza.

simili a quelli

10

Esercitazione Corso Data mining : clustering con dataset Warlogs Mauro Barone matr. 416666 Infatti, a Baghdad si accentua la frequenza dei Criminal Event rispetto alle altre tipologie e quindi anche se lalgoritmo sovrastima tale tipo di operazione nel complesso la percentuale di errori commessa minore. Clusters generati 7 2 Percentuale di errori 22% 19,45% Punti non clusterizzati 106 144

0.05

minPts 5 10

6. Algoritmi gerarchici Non sembrano ancora implementati in Weka, versione 3.6.4., in quanto se applicati al dataset warlogs viene prodotto lerrore di seguito riportato:

11