Escolhendo o número de clusters - critérios de validação de clustering vs considerações teóricas de domínio

8

Costumo enfrentar a questão de ter que escolher um número de clusters. A partição que acabo escolhendo é mais frequentemente baseada em preocupações visuais e teóricas do que em critérios de qualidade.

Eu tenho duas perguntas principais.

O primeiro diz respeito à idéia geral de qualidade dos clusters. Pelo que entendi, critérios como o "cotovelo" estão sugerindo um valor ótimo em referência a uma função de custo. A questão que tenho com essa estrutura é que o critério ideal é cego para a consideração teórica, de modo que há algum grau de complexidade (relacionado ao seu campo de estudo) que sempre seria desejável em seus grupos / grupos finais.

Além disso, conforme explicado aqui, o valor ideal também está relacionado a restrições de "objetivo a jusante" (como restrições econômicas), portanto, considere o que você fará com as questões de agrupamento.

Uma restrição, obviamente, que a pessoa enfrenta é encontrar clusters significativos / interpretáveis, e quanto mais clusters você tiver, mais difícil será interpretá-los.

Mas nem sempre é esse o caso, muitas vezes acho que 8, 10 ou 12 clusters são o número mínimo "interessante" de clusters que gostaria de ter em minha análise.

No entanto, muitas vezes critérios como o cotovelo sugerem muito menos aglomerados, geralmente 2,3 ou 4.

Q1 . O que eu gostaria de saber é qual é a melhor linha de argumento quando você decide escolher mais clusters do que a solução proposta por um determinado critério (como o cotovelo). Intuitivamente, quanto mais sempre deve ser melhor quando não há restrições (como a inteligibilidade dos grupos que você recebe ou no exemplo do Coursera, quando você tem uma quantia muito grande). Como você argumentaria isso em um artigo de revista científica?

Outra maneira de dizer isso é dizer que, depois de identificar o número mínimo de clusters (com esses critérios), você deve justificar por que escolheu mais clusters do que isso? A justificativa não deveria vir apenas ao escolher a quantidade mínima significativa de clusters?

Q2 . De maneira semelhante, não entendo como certas medidas de qualidade, como a silhueta, podem realmente diminuir à medida que o número de clusters aumenta. Não vejo na silhueta uma penalização pelo número de clusters, então como pode ser isso? Teoricamente, quanto mais clusters você tiver, maior será a qualidade do cluster .

# R code 

library(factoextra)

data("iris")
ir = iris[,-5]

# Hierarchical Clustering, Ward.D
# 5 clusters
ec5  = eclust(ir, FUNcluster = 'hclust', hc_metric = 'euclidean', 
              hc_method = 'ward.D', graph = T, k = 5)
# 20 clusters
ec20 = eclust(ir, FUNcluster = 'hclust', hc_metric = 'euclidean', 
              hc_method = 'ward.D', graph = T, k = 20)

a = fviz_silhouette(ec5)  # silhouette plot
b = fviz_silhouette(ec20) # silhouette plot

c = fviz_cluster(ec5)  # scatter plot
d = fviz_cluster(ec20) # scatter plot

grid.arrange(a,b,c,d)

insira a descrição da imagem aqui

giac
fonte
Métodos como o WCSS em K significam que o algoritmo pode ser usado para obter um valor ideal de K para cluster.
Avi sharma
Algumas facetas da qualidade de cluster stats.stackexchange.com/a/195481/3277 . Além disso, se você quiser obter informações gerais sobre os critérios de cluster interno, consulte o documento "Critérios de cluster" na minha página da web.
ttnphns
Theoretically, the more clusters you have, the greater is the cluster qualityAbsolutamente não, não necessariamente. A maioria dos critérios internos de agrupamento (incluindo o índice de silhueta) é "normalizado" ou calibrado em sua fórmula, com o objetivo de tentar ser extremo no (s) melhor (s) número (s) de agrupamentos k, de modo que k seja menor ou maior que esse número produzirá um valor de critério mais baixo. O critério "Elbow SSw" não é normalizado de qualquer maneira, e é ruim, não vale a pena considerar; use Clinski-Harabasz ou Davies-Bouldin em suas normalizações.
ttnphns
what is the best line of argument when you decide to choose more clusters rather than the solution proposed by a certain criteriaSe você ler minhas facetas no link acima, entenderá que não pode haver argumentos melhores nem sintetizados . Afinal, o melhor argumento (para um k menor ou maior) é sua capacidade de persuasão para você ou para o público. A decisão humana não se baseia em argumentos, é arbitrária; argumentar é explicar , desculpar o que nunca pode ser desculpado.
precisa saber é o seguinte
O WCSS sempre diminui à medida que K aumenta, independentemente de mais clusters serem apropriados ou não.
gung - Restabelece Monica

Respostas:

3

As chaves estão localizando clusters significativos e o que você valoriza nos clusters resultantes.

Deixe-me ilustrar com um exemplo simples. O exemplo são dois clusters gaussianos bem separados. Usando k-means para dividir os dados em 2 ou 3 clusters, obtemos estas partições:

set.seed(1066)
x = c(rnorm(200,0,1), rnorm(200,6,1))
y = rnorm(400,0,1)
XY = data.frame(x,y)

KM2 = kmeans(XY, 2)
KM3 = kmeans(XY, 3)

par(mfrow=c(1,2))
plot(XY, pch=20, col=KM2$cluster+1, asp=1)
plot(XY, pch=20, col=KM3$cluster+1, asp=1)

Dois e três clusters

A Silhouette diz que você está melhor com dois grupos do que com três.

library(cluster)
plot(silhouette(KM2$cluster, dist(XY)))
plot(silhouette(KM3$cluster, dist(XY)))

Gráficos de silhueta

É útil ver por que a silhueta caiu. Primeiro de tudo, é fácil ver que, para o cluster à direita, a silhueta mal mudou. O motivo da grande queda na silhueta média é o cluster à esquerda que foi dividido em dois. Por que não silhueta assim? Como eu disse, você precisa analisar o que a métrica favorece. Para cada ponto, a silhueta compara a distância média entre o ponto e os outros pontos no mesmo cluster com a distância média entre esse ponto e o outro cluster mais próximo. Quando havia dois agrupamentos, os pontos em cada um dos agrupamentos eram bem separados do outro agrupamento. Não é assim com três grupos. Os pontos nos dois grupos à esquerda estão um contra o outro. É assim que a métrica pode diminuir. A silhueta não apenas recompensa clusters onde os pontos em um cluster estão próximos; também pune grupos que não são bem separados um do outro.

Então isso chega ao "objetivo a jusante". Há momentos em que ter clusters bem separados não é tão importante. Por exemplo, você pode usar o k-means clustering nas cores de uma imagem para agrupar cores semelhantes para compactação de imagem. Nesse caso, desde que cada cluster seja razoavelmente consistente (compacto), não importa se às vezes dois clusters podem estar próximos um do outro. No entanto, muitas vezes as pessoas usam o cluster como uma maneira de entender uma estrutura mais fundamental em seus dados. Por exemplo, no exemplo de dois gaussianos acima, dois clusters mostram melhor a estrutura subjacente do que três clusters. Se você estiver procurando por estrutura, deseja o número de clusters que melhor representam grupos naturais em seus dados. Mas esses são dois objetivos diferentes:

  1. um agrupamento de pontos em que pontos no mesmo cluster estão próximos um do outro e

  2. um agrupamento que também separa diferentes clusters

Seu argumento de que mais clusters sempre devem ser melhores é bom, desde que você queira que apenas os pontos no mesmo cluster sejam próximos. Mas isso não é bom se você estiver tentando descobrir a estrutura subjacente. A estrutura é o que está nos dados. Tomar um cluster e chamá-lo de dois não é uma melhoria.

G5W
fonte
Obrigado pela sua resposta, muito informativo. Apenas para voltar rapidamente ao meu ponto, vamos imaginar no seu exemplo que o 0 como um significado particular, uma espécie de limite qualitativo, e que uma partição que apareceria lá revelaria algo significativo (teoricamente). Meu problema com a silhueta é que, de fato, embora os pontos pareçam próximos um do outro, na verdade eles estão muito longe teoricamente (porque 0 é algum tipo de limiar significativo). Na minha experiência, muitas vezes essas diferenças qualitativas na interpretação de os aglomerados são importantes.
Giac
11
Eu não acho que estamos discordando. Fiz o exemplo simplesmente como dois clusters gaussianos, então a diferença entre -0.1 e 0.1 é pequena e a versão de três clusters é falsa. No entanto, aceito plenamente que possa haver aplicações nas quais "x <0:" e "x> 0" signifiquem algo completamente diferente e essa separação seja significativa. Mas você não pode esperar que uma métrica como a silhueta conheça seu problema. Ele vê apenas os dados. Portanto, é sua responsabilidade interpretar os dados e a métrica em termos do seu problema. Se a métrica não refletir seu problema, não será útil.
G5W
Sim eu concordo. Apenas outro pensamento, minha impressão é que o que você descreve é ​​muito o divisiveparadigma, mas no agglomerativeparadigma, cada indivíduo é, antes de tudo, um cluster. Então, sinto que neste paradigma "quanto mais, melhor". Não estamos forçando dois grupos a se separarem, mas dois indivíduos a se fundirem em um grupo. Pergunto-me, então, quão apropriada é a silhueta para agrupamentos aglomerativos. O que você acha?
Giac # 7/18
Conforme mencionado na resposta de @ hxd1011, o caso extremo está permitindo que cada ponto seja um cluster. O ponto principal do agrupamento é encontrar alguma estrutura além disso, portanto presumivelmente "mais é melhor" não pode ser completamente verdadeiro; apenas verdadeiro até certo ponto. O objetivo é encontrar o nível certo de pontos de combinação para capturar a estrutura sem mesclar grupos distintos. A cada passo, você deve fazer a pergunta - devo parar por aqui ou continuar a combinar clusters?
G5W
11
Em geral, se seus clusters não estiverem bem separados, a silhouette dirá para continuar combinando-os. No entanto, a silhueta nem é definida para clusters com um ponto. Não será aplicável no início de um processo aglomerativo.
G5W
1

Observe que a validação cruzada também pode ser usada no problema de cluster.

Por exemplo, em K significa que um número crescente de clusters sempre diminuirá o objetivo que estamos ajustando. Um caso extremo seria o número de clusters iguais ao número de pontos de dados e o objetivo é . Mas esse é um modelo super ajustado e falhará no conjunto de testes.0 0

Minha sugestão é verificar a "medida de qualidade de cluster" em um conjunto de dados de teste em espera.

Haitao Du
fonte
Você pode me dar uma referência para a validação cruzada na análise de cluster?
Giac # 7/18