Você está na página 1de 6

Utilizando

o Agrupamento
k-Means no WEKA
(verso 3.5.8)



Este exemplo ilustra a utilizao do algoritmo de agrupamento k-means no
WEKA O conjunto de dados utilizado neste exemplo baseia-se no "bank data"
disponvel no formato csv (bank-data.csv). Assumimos que j foi realizado o
pr-processamento apropriado. Neste caso, o campo ID foi removido e o
atributo "children" foi discretizado (notem que isso no exigido para fazer
agrupamento).
O ficheiro de dados resultante "bank.arff" e inclui 600 instncias.
Vamos usar o k-means para agrupar os clientes do banco e para caracterizar
os segmentos de clientes.

A Figura 1 mostra o interface do WEKA Explorer j com o ficheiro de
dados carregado.

Figura 1

Algumas implementaes do K-means apenas permitem valores


numricos para os atributos. Nesse caso necessrio converter o conjunto de
atributos nominais em binaries. Pode tambm ser necessrio normalizar os
valores dos atributos que foram medidos em escalas substancialmente
diferentes (por exemplo, age e income). Enquanto o WEKA fornece filtros

para realizar essas tarefas de pr-processamento, elas no so necessrias


para fazer o agrupamento. Isto porque o algoritmo SimpleKMeans trata
automaticamente de atributos numricos e nominais. Mais, o algoritmo
normaliza automaticamente os atributos numricos quando est a realizar os
clculos das distncias. O algoritmo SimpleKMeans utiliza a distncia
Euclidiana como medida para calcular as distncias entre as instncias e entre
agrupamentos.
Para executar agrupamento, selecione o "Cluster tab no Explorer e
clique no boto "Choose". Aparece uma drop down list com os algoritmos de
agrupamento disponveis. Neste caso, selecionamos o "SimpleKMeans". A
seguir, clicamos na caixa de texto direita do boto "Choose" para obter a
janela pop-up apresentada na figura 2, para editar os parmetros de
agrupamento.

Figura 2

Na janela de pop-up inserimos 6 como o nmero desejado de


agrupamentos (em vez do valor de 2, que aparece por emisso) e deixamos o
valor da seed como est. O valor da seed utilizado para gerar um nmero
aleatrio que, por sua vez, utilizado para atribuir os primeiros centros e as
primeiras afectaes das instncias aos grupos. Notem que, em geral, o K-
means bastante sensvel forma como se geram os agrupamentos iniciais
um mtodo de pesquisa local que gera mnimos locais. Sendo assim,
aconselhvel tentar-se diferentes valores para a seed e avaliar os
resultados.

Logo que estejam as opes especificadas, podemos executar o


algoritmo de agrupamento. Vamos apenas assegurar-nos que no painel
Cluster Mode" a opo "Use training set" est selecionada e clicamos em
"Start".
A maneira como o Weka avalia os agrupamentos criados depende no
modo de agrupamento que for selecionado. Esto disponveis 4 modos de
agrupamento (como botes do painel de modo de agrupar).
Use training set (por omisso). Depois de se obterem os grupos o Weka
classifica as instncias de treino em grupos de acordo com a representao do
grupo e calcula a percentagem de instncias que pertencem a cada grupo. Por
exemplo, se tivermos dois grupos num conjunto de 14 instncias em que no
primeiro grupo temos 6 instncias e no Segundo 8, o resultado ser: 43% (6
instncias) no grupo 0 e 57% (8 instncias) no grupo 1.
Supplied test set ou Percentage split. O Weka pode avaliar os
agrupamentos em dados de teste separados se a representao do grupo for
probabilstica. (exemplo do EM).
Classes to clusters evaluation. Neste modo, o Weka ignora primeiro o
atributo da classe e gera os grupos. A seguir, durante a fase de teste, atribui
classes aos grupos, baseado na classe maioritria de cada grupo. Calcula o
erro de classificao, baseado nesta atribuio e mostra a matriz de confuso
respectiva.

Na figura 3 mostramos os resultados obtidos no modo training set
fornecido por omisso.

Figura 3


Podemos clicar com o boto da direita sobre o painel "Result list" e
visualizar os resultados numa janela separada (vejam a figura 4). A janela
resultante mostra o centride de cada agrupamento bem como as estatsticas
quanto ao nmero e percentagem de instncias atribudas aos diferentes
agrupamentos. Os centrides dos agrupamentos so os vectores mdios de
cada grupo (cada um dos valores correspondentes a uma dimenso
representam o valor mdio para essa dimenso em todo o grupo). Assim, os
centrides caracterizam os agrupamentos. Por exemplo, o centride grupo 1
mostra que o segmento dos casos que representam mulheres de meia idade
(idade volta de 38) qe vivem no centro da cidade com um rendimento
mdio de aproximadamente $28,500, casadas e com um filho apenas, etc. Este
grupo respondeu YES ao produto PEP.

Figura 4

Uma outra maneira de compreender as caractersticas de cada grupo


atravs da visualizao. Podemos faz-lo clicando no boto da direita do rato
sobre o painel "Result list" e selecionando Visualize cluster assignments".
Isso faz com que aparea a janela de visualizao que mostramos na Figura 5.

Figure 5

Podem escolher o nmero de grupos e qualquer outros dos atributos


para cada uma das dimenses (eixo dos x, eixo dos y e a cor). No exemplo de
cima, escolhemos o nmero de agrupamentos para o eixo dos x, o nmero da
instncia (atribudo pelo WEKA) para o eixo dos y, e atributo sexo para a cr.
Podemos visualizar a distribuio de homens e de mulheres em cada
agrupamento. Por exemplo, pode ver-se que os grupos 2 e 3 so dominados
por homens e que os grupos 4 e 5 por mulheres. Neste caso, mudando a
dimenso da cor para outro atributo, podemos ver a sua distribuio pelos
agrupamentos.
Finalmente, podemos estar interessados em guardar o conjunto de
dados resultante constitudo pela informao que existia originariamente,
antes de agruparmos, juntamente com a nova classe atribuda pelo WEKA
(SimpleKmeans). Para o fazerem, cliquem no boto de "Save" na janela de
visualizao e guardem os resultados no ficheiro "bank-kmeans.arff". A
poro de topo deste ficheiro apresentada na figura 6.

Figure 6

Notem que para alm de ter adicionado o atributo "instance_number",


o WEKA tambm adicionou o atributo "Cluster" ao conjunto de dados
originais (o ltimo atributo). Manipulando este conjunto de dados, podemos
facilmente convert-lo num formato mais utilizvel para uma anlise ou
processamento adicionais. Por exemplo, ns convertemo-lo no formato csv e
ordenmos os resultados por agrupamentos. Adicionmos tambm o campo
ID que pertencia aos dados originais. Podem ver em "bank- kmeans.csv".

Se o conjunto de dados possua j um atributo com as classificaes,
este pode ser ignorado utilizando o boto ignore attributes e seleccionando
o atributo desejado.

Você também pode gostar