Prof. Claudio Sartori

Data mining


Informativa Privacy

Clustering con K-Means in Weka

Questo esempio si basa sull'insieme di dati pre-elaborato in questo esercizio, contenuto nel file "bank.arff" All'apertura del file in Weka si ottiene la finestra di Figura 1

Il file contiene 600 istanze. Come illustrazione del clustering in Weka utilizzeremo la sua implementazione dell'algoritmo K-means per clusterizzare i clienti di questo insieme di dati bancari, e per caratterizzare i segmenti di clientela risultanti.

Alcune implementazioni di K-means permettono di trattare soltanto valori numerici per gli attributi. In questo caso può essere necessario convertire il dataset per sostituire gli attributi categorici con attributi binari. Può anche essere necessario normalizzare i valori degli attributi che sono misurati su scale sostanzialmente diverse (ad esempio, "age" e "income"). Weka fornisce filtri per eseguire queste operazioni di pre-processing, ma in questo caso non è necessario utilizzarli, infatti l'implementazione SimpleKMeans di Weka gestisce automaticamente attributi categorici e numerici. Inoltre, l'algoritmo normalizza automaticamente gli attributi numerici quando vengono calcolate le distanze euclidee.

Si scelga il tab "Cluster" e premendo il bottone "Choose" si scelga l'algoritmo "SimpleKMeans", quindi, si prema l'area a destra del bottone "Choose" per scegliere i parametri del clustering, come mostrato in Figura 2

Nella finestra scegliamo 6 per il numero di clusters e lasciamo intatto il valore di "seed". Quest'ultimo è utilizzato per generare il numero casuale che influenza l'assegnamento iniziale dei cluster. Come noto, K-Means è molto sensibile a questo assegnamento iniziale ed è spesso opportuno rieseguire l'algoritmo con diversi "seed" per verificare i risultati.

Specificate le opzioni si può avviare l'algoritmo, controllando che nel pannello "Cluster Mode" sia selezionata l'opzione "Use training set". Right-click sul result set fa aprire la finestra di visualizzazione dei risultati, come mostrato in Figura 3 e Figura 4

La finestra risultante mostra il centroide di ogni cluster, insieme alle statistiche su numero e percentuale di istanze assegnate ai cluster. I centroidi sono i vettori medi di ogni cluster (ovvero ogni componente del centroide è il valore medio dei valori di quella dimensione nel cluster). Quindi i centroidi possono essere utilizzati per caratterizzare i cluster. Per esempio, il centroide del cluster 1 mostra che questo è un segmento di donne intorno ai 38 anni, che vivono in città, con reddito intorno a 28000, sposate con un figlio, ecc. Inoltre questo gruppo mediamente ha risposto positivamente al prodotto PEP

Un altro modo per comprendere le caratteristiche di ogni cluster è attraverso la visualizzazione. Possiamo fare questo con un right-click sul pannello di sinistra e selezionando "Visualize cluster assignments" Come mostrato in Figura 5.

È possibile scegliere il numero di cluster e qualunque degli altri attributi per ognuna delle tre dimensioni disponibili (asse x, asse y, colore). Diverse combinazioni di scelte forniranno diverse visualizzazioni sulle correlazioni all'interno di ciascun cluster. Nell'esempio sopra abbiamo scelto il numeor di cluster nell'asse x, il numero di istanza, assegnato da Weka, nell'asse y e l'attributo "sex" per la dimensione colore. Questo restituisce la distribuzione di maschi e femmine in ciascun cluster. Per esempio, si può notare che i cluster 2 e 3 sono diminati da maschi, mentre i cluster 4 e 5 sono dominati da femmine. In questo caso, cambiando l'attributo della dimensione colore se ne può visualizzare facilmente la distribuzione nei cluster.

Infine, possiamo essere interessati a salvare il data set risultante con le assegnazioni delle istanze ai cluster, assegnando al file salvato il nome "bank-kmeans.arff". La prima parte del file è mostrata in Figura 6.

Si noti che Weka ha aggiunto gli attributi "instance_number" e "Cluster". Eseguendo alcune semplici manipolazioni su questo data set possiamo facilmente convertirlo in forme più utilizzabili per altre analisi, ad esempio riconvertendo in formato csv e rimettendo l'attributo ID originale. come mostrato in "bank- kmeans.csv".

Per qualsiasi problema su questa pagina contattare il webmaster.