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):
O procedimento completo foi o seguinte:
- Realizou agrupamentos hierárquicos em 10 mil pontos e salvou o medoids em 2: 150 agrupamentos.
- Tomou os medoides de (1) como sementes para kmeans agrupando 163k observações.
- 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:
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.
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:
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 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.
fonte
Respostas:
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:
Veja, por exemplo, esta pergunta / resposta relacionada no stackoverflow .
fonte
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.
fonte