1. Pontifícia Universidade Católica do Paraná
Centro de Ciências Exatas e de Tecnologia
Ciência da Computação
Reconhecimento de Padrões II
Atividade Prática
Aprendizagem Não Supervisionada
31 de Agosto de 2009
Este exemplo ilustra a utilização do algoritmo de agrupamento K-Means. O arquivo de dados utilizado neste
experimento já foi pré-processado e está em formato compatível com o WEKA. A versão original dos dados
continha um campo de identificação do cliente que foi removido e o atributo “children” foi convertido no tipo
categórico. Isso, entretanto, não era estritamente necessário.
O arquivo de dados banco.arff contém 600 amostras. Como exemplo utilizaremos este arquivo e
executaremos o algoritmos de agrupamento k-Means do WEKA para agrupar os clientes deste arquivo de
dados e caracterizar os segmentos de clientes resultantes.
Algumas implementações do K-means permitem somente atributos de valor numérico. Neste caso, pode ser
necessário converter o conjunto de dados. Pode ser necessário também normalizar os valores dos atributos
que são medidos em escalas relativamente diferentes, como por exemplo, idade e renda. Apesar do WEKA
disponibilizar filtros para realizar todas estas tarefas de pré-processamento, elas não necessárias para o
agrupamento. Isto porque o algoritmo SimpleKMeans do WEKA lida automaticamente com uma mistura de
atributos categóricos e numéricos. Além disso, o algoritmo normaliza automaticamente atributos numéricos
no momento de calcular distâncias. O algoritmo SimpleKMeans do WEKA utiliza distância Euclideana
como métrica de proximidade entre instâncias e grupos.
Agrupamento no WEKA
Para realizar agrupamento, selecione a aba “Cluster” e o botão “Choose”. Isso resulta em uma lista dos
algoritmos de agrupamento disponíveis. Neste caso, selecionamos "SimpleKMeans". Em seguida, clique na
caixa de texto a direito do botão "Choose" para obter a janela pop-up para editar os parâmetros do
algoritmo.
2. Pontifícia Universidade Católica do Paraná
Centro de Ciências Exatas e de Tecnologia
Ciência da Computação
Reconhecimento de Padrões II
Na janela pop-up inserimos seis (6) como número de grupos, ao invés do valor dois (2) padrão, e deixamos
o valor da semente (seed) como está. O valor da semente é usado na geração de um número aleatório que
é usado para fazer a atribuição inicial das instâncias aos grupos. Note que, em geral, o algoritmo K-Means é
bastante sensível em como os grupos são inicialmente atribuídos. Então, é normalmente necessário tentar
diferentes valores e avaliar os resultados.
Uma vez que todas as opções foram feitas, podemos executar o algoritmo de agrupamento. Devemos ter
certeza aqui de que no painel "Cluster Mode" a opção "Use training set" está selecionada, e então clicamos
"Start".
3. Pontifícia Universidade Católica do Paraná
Centro de Ciências Exatas e de Tecnologia
Ciência da Computação
Reconhecimento de Padrões II
A janela de resultado mostra o centróide de cada cluster bem como estatística sobre o número e percentual
de instâncias atribuídas aos diferentes grupos (clusters). Os centróides dos grupos (clusters) são vetores
médios para cada grupo (então, cada valor de dimensão no centróide representa o valor médio para aquela
dimensão no grupo). Então, os centróides podem ser usados para caracterizar os grupos. Por exemplo, o
centróide do grupo 1 mostra que este é um segmento de casos representando mulheres de meia idade a
4. Pontifícia Universidade Católica do Paraná
Centro de Ciências Exatas e de Tecnologia
Ciência da Computação
Reconhecimento de Padrões II
jovens morando em área central com uma renda média de $28.500, que são casadas, com um filho, etc.
Além disso, este grupo aceitou, na media o produto PEP.
Outra maneira de entender as características de cada grupo é através da visualização. Podemos fazer isso
clicando com o botão da direita o conjunto de resultados no painel da esquerda “Result list” e selecionando
"Visualize cluster assignments".
Você pode escolher o número do grupo e qualquer dos outros atributos para cada uma das três dimensões
diferentes disponíveis (x-axis, y-axis, e color). Diferentes combinações de escolhas resultarão em uma
renderização visual de diferentes relacionamentos entre cada grupo.
Finalmente, estamos interessados em armazenar o conjunto de dados resultante que inclui cada instância
com o grupo atribuído. Para isso, clicamos no botão "Save" na janela de visualização e armazenar o
resultado como um arquivo.
Note que em adição ao atributo "instance_number", o WEKA também incluiu o atributo "Cluster" ao conjunto
de dados original. Na parte dos dados, cada instância agora tem seu grupo atribuído como o último valor do
atributo.
5. Pontifícia Universidade Católica do Paraná
Centro de Ciências Exatas e de Tecnologia
Ciência da Computação
Reconhecimento de Padrões II