Algoritmo de k-means
quarta-feira, 19 de novembro de 2008Proposto por J. MacQueen em 1967, o algoritmo de k-means (ou algoritmo das k-médias) este é um dos mais conhecidos e utilizados, além de ser o que possui o maior número de variações. O algoritmo inicia com a escolha dos k elementos que formaram as sementes iniciais. Esta escolha pode ser feita de muitas formas, entre elas:
- selecionando as k primeiras observações;
- selecionando k observações aleatoriamente; e
- escolhendo k observações de modo que seus valores sejam bastante diferentes. Por exemplo, ao se agrupar uma população em três grupos de acordo com a altura dos indivíduos, poderia se escolher um indivíduo de baixa estatura, um de estatura mediana e um alto.
Escolhidas as sementes iniciais, é calculada a distância de cada elemento em relação às sementes, agrupando o elemento ao grupo que possuir a menor distância (mais similar) e recalculando o centróide do mesmo. O processo é repetido até que todos os elementos façam parte de um dos clusters.
Após agrupar todos os elementos, procura-se encontrar uma partição melhor do que a gerada arbitrariamente. Para isto, calcula-se o grau de homogeneidade interna dos grupos através da Soma de Quadrados Residual (SQRes), que é a medida usada para avaliar o quão boa é uma partição.
Após o cálculo, move-se o primeiro objeto para os demais grupos e verifica-se se existe ganho na Soma de Quadrados Residual, ou seja, se ocorre uma diminuição no valor da SQRes. Existindo, o objeto é movido para o grupo que produzir o maior ganho, a SQRes dos grupos é recalculada e passa-se ao objeto seguinte. Depois de um certo número de iterações ou não havendo mais mudanças, o processo é interrompido.
A figura mostra a execução do algoritmo das k-médias para formar dois agrupamentos a partir da população composta pelos elementos {2, 6, 9, 1, 5, 4, 8}. Pode-se observar que como sementes foram escolhidos os dois primeiros e como critério para definir o valor do centróide após a união foi usada a média. Na figura, c1 e c2 apresentam os valores dos centróides de cada um dos agrupamentos após a adição de um novo elemento.
O algoritmo de k-means é bastante escalar e confiável, porém apresenta alguns problemas. Os dois principais problemas são:
- Exige que as variáveis sejam numéricas ou binárias e freqüentemente aplicações envolvem dados categorizados, neste caso, uma alternativa é converter os dados categorizados em valores numéricos ou utilizar uma das muitas variações do método; e
- É sensível a valores outliers, um único objeto com valor muito extremo pode modificar, substancialmente, a distribuição dos dados.
