3.2 Algoritmos de Agrupamento de Partição
3.2.1 K-Médias
O algoritmo K-Médias [MacQueen, 1967] é a ferramenta de agrupamento mais popular e mais
utilizada em aplicações científicas e industriais. Isto deve-se ao facto deste algoritmo obter bons resultados em muitas aplicações práticas. A designação K-Médias deve-se ao facto do algoritmo
identificar cada um dos K grupos pela média dos seus objectos, isto é, pelo seu centróide. A função
objectivo (ou de custo) usada por este algoritmo é a função do erro quadrático e o objectivo do algoritmo é encontrar o agrupamento que minimize essa função.
Este algoritmo recebe como parâmetro de entrada o número de grupos a obter no agrupamento. O algoritmo começa por escolher aleatoriamente de entre os objectos do conjunto de dados, K
objectos que funcionam como centróides dos grupos do agrupamento inicial. Cada um dos remanescentes objectos é associado ao centróide mais similar (próximo) e de seguida é calculado o novo centróide para cada um dos grupos. Este processo repete-se, de forma a optimizar o agrupamento obtido até que seja atingido o critério de convergência. O critério de convergência normalmente verifica-se quando não existe nenhuma troca de objectos entre grupos ou a diminuição da função objectivo de uma iteração para a seguinte for menor que um valor mínimo atribuído à partida. No entanto, existem outros critérios de convergência menos usados, nomeadamente, até que os centróides não sejam alterados ou até alcançar um limite no número de iterações.
O procedimento K-Médias é apresentado de uma forma estruturada e sumariada na tabela 3.1.
Tabela 3.1 – Algoritmo K-Médias
• Dados de entrada
o X – Conjunto de dados com n objectos
o K – Número de grupos
• Dados de saída
o P – Agrupamento de dados final
• Procedimento
1. Escolher arbitrariamente K objectos do conjunto de dados X como o centro dos
grupos iniciais 2. Repetir
a. (Re)atribuir cada objecto ao grupo ao qual o objecto é mais similar b. Actualizar os centros dos grupos (calculando o valor médio dos
objectos para cada grupo)
Até ser atingido o critério de convergência
3. Definir P como o agrupamento com os grupos obtidos no passo anterior
A popularidade deste algoritmo justifica-se também pela sua simplicidade, compreensibilidade e pelas suas bases sólidas oriundas da análise da variância. O objectivo do algoritmo é que a similaridade intra-grupo seja elevada e que a similaridade inter-grupos seja baixa de forma a obter os K grupos tão compactos e separados quanto possível.
O algoritmo é relativamente escalável e eficiente no processamento de conjuntos de dados de média e grande dimensão pois a sua complexidade temporal é O(npKt), em que n é o número total
de objectos, p é o número de dimensões, K é o número de grupos e t é o número de iterações.
Normalmente, K<<n e t<<n. No entanto, torna-se menos escalável e eficiente em grandes conjuntos de dados quando não são seleccionados bons centróides iniciais. O algoritmo obtém bons resultados quando os grupos são nuvens esféricas de tamanhos semelhantes, compactas e bem separadas umas das outras [Jain et al., 2000].
Embora o K-Médias convirja sempre, quando os grupos não são esféricos e bem separados, não
problema com este algoritmo é que é significativamente sensível à selecção inicial dos centros dos grupos podendo convergir para um mínimo local da função objectivo (óptimo local) se os centróides não forem bem escolhidos inicialmente. Uma solução para tentar reduzir este efeito é executá-lo múltiplas vezes e escolher o agrupamento de dados que minimize o erro quadrático.
Este algoritmo só pode ser aplicado a dados que possibilitem definir a média de cada um dos grupos. Este não é o caso de dados que contenham atributos categóricos. O K-Médias necessita
saber à partida qual o número de grupos existentes nos dados. Não é apropriado para descobrir grupos com formatos não convexos ou grupos de tamanhos muito diferentes. Além disso, é sensível ao ruído e a valores isolados, já que um pequeno número deste tipo de dados pode influenciar substancialmente o valor médio.
Apesar da sua grande popularidade, o algoritmo K-Médias sofre de algumas limitações que
podemos resumir como:
• necessidade de especificar à priori, o número de grupos a identificar;
• o agrupamento a obter depende dos centróides inicialmente escolhidos;
• aplicável apenas a dados não categóricos;
• obtém frequentemente um mínimo local da função objectivo;
• sensível a ruído e a dados isolados;
• não apropriado para descobrir grupos com forma não convexa, com tamanhos muito diferentes ou mal separados.
Considere-se um conjunto de objectos localizados no espaço como se pode ver no rectângulo da figura 3.2 (a). Seja K=3, isto é, o utilizador deverá querer agrupar os objectos em três grupos. De
acordo com o algoritmo da tabela 3.1, escolhemos arbitrariamente três objectos como os três centros iniciais de grupo (os centros dos grupos são marcados com um “+”). Cada objecto é incluído no grupo com centro mais próximo. Tal distribuição forma silhuetas em círculo como se vê na figura 3.2 (a).
Este novo agrupamento irá procurar uma actualização dos centros dos grupos. Isto é, o valor médio de cada grupo é recalculado baseado nos objectos que ficam no grupo. Relativamente a estes novos centros, os objectos são redistribuídos pelos grupos com centro mais perto. Tal redistribuição forma novas silhuetas em forma de círculo com curvas a tracejado, como se mostra na figura 3.2 (b).
Este processo é iterativo, conduzindo à figura 3.2 (c). Quando não se verifica nenhuma redistribuição dos objectos o processo termina.
a) b) c)
Figura 3.2 – Agrupamento de um conjunto de objectos baseado no algoritmo K-Médias.1
Dadas as limitações do algoritmo K-Médias, surgiram muitas variantes que tentam superar
algumas das suas limitações [Anderberg, 1973]. Estas podem diferir na selecção dos K centróides
iniciais, no cálculo da dissemelhança, nas estratégias para calcular as médias dos grupos e na inclusão de procedimentos que permitem dividir ou juntar grupos no processo iterativo.
1
As que diferem na selecção dos K centróides iniciais, tentam seleccionar um bom conjunto de
centróides iniciais, para que o algoritmo chegue ao mínimo global da função objectivo. Uma estratégia que normalmente chega a bons resultados é a de primeiro aplicar um algoritmo hierárquico aglomerativo para encontrar um agrupamento inicial, sendo usada, de seguida, uma realocação iterativa para melhorar esse agrupamento. Outra variante consiste em permitir dividir ou juntar grupos. Tipicamente, um grupo é dividido quando a sua variância é superior a um determinado limiar predefinido, e dois grupos são unidos quando a distância entre os seus centróides é inferior a um determinado limiar especificado. Usando esta variante com valores limiares apropriados em grupos de tamanho semelhante, bem separados e compactos, é possível obter o agrupamento de dados óptimo a partir de um qualquer agrupamento inicial. O algoritmo ISODATA [Ball and Hall, 1965] emprega esta técnica de junção e separação de grupos. Este algoritmo com a junção e separação iterativa de grupos selecciona automaticamente o número de grupos no conjunto de dados. Uma outra estratégia para seleccionar um bom conjunto de centróides iniciais foi apresentado em [Bradley and Fayyad, 1998] e consiste em primeiro aplicar o K-Médias
em várias pequenas amostras de dados com selecção aleatória dos centróides. Cada uma dessas soluções é usada como potencial inicialização para a união de todas as amostras. Os centróides da melhor solução (a que minimiza o erro quadrático) são usados como os centróides iniciais para a aplicação do K-Médias a todos os dados. O algoritmo farthest–first traversal
[Hochbaum and Shmoys, 1985] é também uma opção para seleccionar os centróides iniciais. Este algoritmo é bastante simples: primeiro, escolhe-se aleatoriamente um objecto do conjunto de dados, sendo esse objecto o centróide do primeiro grupo; para os restantes grupos, selecciona-se iterativamente o objecto com maior distância mínima relativamente aos centróides já seleccionados. Outra variante [Babu and Marty, 1994] é baseada em algoritmos genéticos. Para uma eventual optimização combinatória poder-se-á usar a abordagem da solidificação simulada [Brown and Huntley, 1991].
Outra variante do algoritmo K-Médias envolve a selecção de uma função objectivo diferente.
Em [Diday, 1973] e [Symon, 1977] são propostos algoritmos dinâmicos de agrupamento em que os grupos não são representados por um centróide. Estes algoritmos descrevem uma abordagem dinâmica do agrupamento obtida pela formulação do problema de agrupamento usando uma estrutura de estimativa da máxima verosimilhança. Em [Mao and Jain, 1996] é usada a distância de Mahalanobis em vez da distância euclidiana para procurar grupos elipsoidais. O uso da minimização do máximo da distância intra-grupo em vez da minimização do erro quadrático como função objectivo foi proposta em [Gonzalez, 1985]. Em [Zhang, 2001] é sugerida outra forma de rectificação do processo de optimização pela atribuição de cada objecto a diferentes grupos com uma ponderação apropriada (como no algoritmo EM [Dempster et al., 1977]), em vez de mover os objectos de um grupo para outro. As ponderações repercutem o quanto um objecto é apropriado em cada grupo.
O algoritmo K-Modas [Huang, 1998] estende o paradigma do K-Médias de modo a fazer o
agrupamento de dados categóricos por substituição das médias dos grupos por modas. Usa novas medidas de dissimilaridade para tratar dados categóricos e usa um método baseado na frequência para actualizar as modas dos grupos. Os algoritmos K-Médias e K-Modas podem ser integrados de
modo a fazer o agrupamento de dados com valores numéricos e categóricos, resultando no algoritmo K-Protótipos [Huang, 1998].
O algoritmo EM (Expectation Maximization) [Dempster et al., 1977], um algoritmo de agrupamento baseado em modelos (ver secção 3.6.1.1) estende o paradigma do K-Médias numa
direcção diferente.
Um esforço recente em escalar melhor o algoritmo K-Médias para grandes conjuntos de dados
é baseado na ideia de identificar três tipos de regiões em dados: regiões compressíveis, regiões que devem ser mantidas na memória principal e regiões que são descartáveis. Um objecto é descartável se a sua inclusão num grupo é assegurada. Um objecto é compressível se não for descartável mas pertencer a um subgrupo. Uma estrutura de dados conhecida como característica do agrupamento é usada para sumariar objectos que tenham sido descartados ou comprimidos. Se um objecto não é nem descartável nem compressível, deve ser retido na memória principal. Para conseguir
escalabilidade, o algoritmo de agrupamento iterativo inclui somente as características de agrupamento dos objectos compressíveis e os objectos que devem ser mantidos na memória principal [Han and Kamber, 2006].
Um método genérico para alcançar escalabilidade é o pré-processamento dos dados. Apesar do pré-processamento identificar valores isolados tem por vezes alguns condicionalismos. Por vezes, resultam em aproximações que afectam negativamente a qualidade do agrupamento de dados final. [Pelleg and Moore, 1999] sugere como acelerar directamente o processo iterativo do algoritmo
K-Médias utilizando KD-trees [Moore, 1999]. O algoritmo X-Médias [Pelleg and Moore, 2000] vai
mais longe, já que adicionalmente ao aceleramento do processo iterativo, tenta incorporar uma pesquisa do melhor número de grupos existentes no conjunto de dados (K). O X-Médias tenta
dividir parte dos grupos já obtidos durante o processo iterativo baseado no critério de informação Bayesiano (BIC). Outro trabalho que visa tornar o processo iterativo mais rápido é apresentado em [Judd et al., 1996] em que é usada informação da iteração anterior para reduzir o número de distâncias a calcular na iteração seguinte.