Resultados adversos dos critérios de agrupamento

8

Fiz um agrupamento de pontos de coordenadas (longitude, latitude) e encontrei resultados adversos surpreendentes dos critérios de agrupamento para o número ideal de agrupamentos. Os critérios são retirados do clusterCrit()pacote. Os pontos que estou tentando agrupar em um gráfico (as características geográficas do conjunto de dados são claramente visíveis):

Gráfico de todas as observações

O procedimento completo foi o seguinte:

  1. Realizou agrupamentos hierárquicos em 10 mil pontos e salvou o medoids em 2: 150 agrupamentos.
  2. Tomou os medoides de (1) como sementes para kmeans agrupando 163k observações.
  3. Foram verificados 6 critérios de cluster diferentes para o número ideal de clusters.

Apenas dois critérios de agrupamento deram resultados que fazem sentido para mim - os critérios de Silhouette e Davies-Bouldin. Para os dois, deve-se procurar o máximo na trama. Parece que ambos dão a resposta "22 Clusters é um bom número". Para os gráficos abaixo: no eixo x é o número de clusters e no eixo y o valor do critério, desculpe pelas descrições incorretas na imagem. Silhouette e Davies-Bouldin, respectivamente:

Gráfico de Critérios Silhoette Gráfico de critério de Davies-Bouldin

Agora, vejamos os valores de Calinski-Harabasz e Log_SS. O máximo pode ser encontrado na plotagem. O gráfico indica que quanto maior o valor, melhor o cluster. Um crescimento tão estável é bastante surpreendente, acho que 150 clusters já são um número bastante alto. Abaixo dos gráficos para os valores de Calinski-Harabasz e Log_SS, respectivamente.

Gráfico de critério Calinski-Harabasz Gráfico de critério Log_SS

Agora, para a parte mais surpreendente, os dois últimos critérios. Para o Ball-Hall, a maior diferença entre dois agrupamentos é desejada e, para Ratkowsky-Lance, o máximo. Parcelas de Ball-Hall e Ratkowsky-Lance, respectivamente:

Gráfico de critério de salão de baile Gráfico de Critério de Ratkowsky-Lance

Os dois últimos critérios fornecem respostas completamente adversas (quanto menor o número de clusters, melhor) do que o terceiro e o quarto critérios. Como isso é possível? Para mim, parece que apenas os dois primeiros critérios foram capazes de entender o agrupamento. Uma largura de silhueta de cerca de 0,6 não é tão ruim. Devo simplesmente pular os indicadores que dão respostas estranhas e acreditar naqueles que dão respostas razoáveis?

Editar: plotagem para 22 clustersSolução de 22 clusters


Editar

Você pode ver que os dados estão bem agrupados em 22 grupos, portanto, os critérios que indicam que você deve escolher dois clusters parecem ter pontos fracos, a heurística não está funcionando corretamente. Tudo bem quando posso plotar os dados ou quando os dados podem ser compactados em menos de quatro componentes principais e plotados. Mas se não? Como devo escolher o número de clusters que não seja usando um critério? Vi testes que indicaram Calinski e Ratkowsky como critérios muito bons e ainda assim fornecem resultados adversos para um conjunto de dados aparentemente fácil. Portanto, talvez a pergunta não deva ser "por que os resultados diferem", mas "quanto podemos confiar nesses critérios?".

Por que uma métrica euclidiana não é boa? Não estou realmente interessado na distância exata exata entre eles. Entendo que a distância real é esférica, mas para todos os pontos A, B, C, D se esférica (A, B)> esférica (C, D) do que também euclidiana (A, B)> euclidiana (C, D), que deve ser suficiente para uma métrica de cluster.

Por que eu quero agrupar esses pontos? Quero construir um modelo preditivo e há muita informação contida no local de cada observação. Para cada observação, também tenho cidades e regiões. Mas há muitas cidades diferentes e eu não quero criar, por exemplo, 5000 variáveis ​​fatoriais; portanto, pensei em agrupá-los por coordenadas. Funcionou muito bem, já que as densidades em diferentes regiões são diferentes e o algoritmo o encontrou, 22 variáveis ​​de fatores estariam bem. Eu também poderia julgar a bondade do agrupamento pelos resultados do modelo preditivo, mas não tenho certeza se isso seria sensato em termos computacionais. Obrigado pelos novos algoritmos, eu definitivamente os testarei se eles trabalharem rapidamente em grandes conjuntos de dados.

Karol Przybylak
fonte
Você pode visualizar o resultado do cluster em 22 clusters, por favor?
QuIT - Anony-Mousse
Qual método você usou para o cluster hierárquico? Isso pode afetar substancialmente os resultados que você obtém?
Hong Ooi
Helo Hong, usei o método "diana" com a distância euclidiana, que deve ser uma distância razoável para coordenadas. Também a solução de cluster de 22 plotados me parece bastante razoável.
22913 Karol Przybylak
Obrigado pela sua resposta e seu conselho, Anony-Mousse. Veja minha edição.
22813 Karol Przybylak
Bem, você pode atualizar sua pergunta. compare o resultado para dizer, agnes com 15 clusters e agnes com 30 clusters. Enquanto os clusers são convexos, não estou convencido de que isso é tudo o que você precisa para ter clusters "agradáveis". Quando um resultado de cluster é bom? Existem milhões de resultados convexos possíveis.
Quit # Anony-Mousse

Respostas:

6

A pergunta que você deve fazer a si mesmo é: o que você deseja alcançar .

Todos esses critérios nada mais são do que heurísticas . Você julga o resultado de uma técnica de otimização matemática por outra função matemática. Na verdade, isso não mede se o resultado é bom , mas apenas se os dados se ajustam a certas suposições.

Agora, como você tem um conjunto de dados globais em latitude e longitude distância euclidiana, na verdade já não é uma boa escolha. No entanto, alguns desses critérios e algoritmos (k-mean…) precisam dessa função de distância inadequada.

Algumas coisas que você deve tentar:

  • Melhores algoritmos. Experimente o DBSCAN e o OPTICS , que não exigem que você especifique o número de clusters! Eles têm outros parâmetros, mas, por exemplo, distância e número mínimo de pontos devem ser muito mais fáceis de configurar para esse conjunto de dados.
  • Visualização. Em vez de examinar estatísticas de alguma medida matemática, escolha o melhor resultado por inspeção visual ! Então, primeiro, visualize os clusters para ver se o resultado faz algum sentido.
  • Considere o que você deseja encontrar. Um critério matemático será feliz se você separar os continentes. Mas você não precisa de um algoritmo para fazer isso, os continentes já são bastante conhecidos! Então o que você quer descobrir?
  • Remova os outliers. Tanto o k-means quanto o cluster hierárquico não gostam muito de outliers, e pode ser necessário aumentar o número de clusters para encontrar pelo número de outliers nos dados (DBSCAN e OPTICS mencionados acima são muito mais robustos em relação aos outliers).
  • Função de distância mais apropriada. A Terra é aproximadamente esférica, use a grande distância do círculo em vez da distância euclidiana.
  • Tente converter os dados em um sistema de coordenadas 3D ECEF , se você precisar usar a distância euclidiana. Isso produzirá centros de aglomerados que estão abaixo da superfície terrestre, mas permitirá aglomerar o Alasca e a distância euclidiana é pelo menos um limite inferior da verdadeira distância da superfície.

Veja, por exemplo, esta pergunta / resposta relacionada no stackoverflow .

Possui QUIT - Anony-Mousse
fonte
0

Longitude e latitude são ângulos que definem pontos em uma esfera; portanto, você provavelmente deve estar olhando para a Distância do Grande Círculo ou outras distâncias geodésicas entre os pontos, em vez da distância euclidiana.

Também como foi mencionado, certos algoritmos de clustering explicitamente baseados em modelo, como modelos de mistura, e implicitamente baseados em modelo, como meios K, fazem suposições sobre a forma e o tamanho dos clusters. Nessa situação, você espera que seus dados se ajustem a um modelo subjacente? Caso contrário, os métodos baseados em densidade que não fazem suposições sobre a forma / tamanho dos clusters podem ser mais apropriados.

pontikos
fonte