He llevado a cabo una agrupación de puntos de coordenadas (longitud, latitud) y he encontrado resultados sorprendentes y adversos de los criterios de agrupación para el número óptimo de agrupaciones. Los criterios se toman del clusterCrit()
paquete. Los puntos que estoy tratando de agrupar en una parcela (las características geográficas del conjunto de datos son claramente visibles):
El procedimiento completo fue el siguiente:
- Realizó agrupación jerárquica en 10k puntos y guardó medoides para 2: 150 agrupaciones.
- Tomó los medoides de (1) como semillas para agrupar kmeans de 163k observaciones.
- Se verificaron 6 criterios de agrupación diferentes para obtener el número óptimo de agrupaciones.
Solo 2 criterios de agrupamiento dieron resultados que tienen sentido para mí: los criterios de Silhouette y Davies-Bouldin. Para ambos, uno debe buscar el máximo en la trama. Parece que ambos dan la respuesta "22 Clusters es un buen número". Para los gráficos a continuación: en el eje x es el número de grupos y en el eje y el valor del criterio, perdón por las descripciones incorrectas en la imagen. Silhouette y Davies-Bouldin respectivamente:
Ahora veamos los valores de Calinski-Harabasz y Log_SS. El máximo se encuentra en la trama. El gráfico indica que cuanto mayor sea el valor, mejor será la agrupación. Un crecimiento tan constante es bastante sorprendente, creo que 150 grupos ya es un número bastante alto. Debajo de las parcelas para los valores de Calinski-Harabasz y Log_SS respectivamente.
Ahora, para la parte más sorprendente, los dos últimos criterios. Para el Ball-Hall se desea la mayor diferencia entre dos agrupaciones y para Ratkowsky-Lance el máximo. Tramas de Ball-Hall y Ratkowsky-Lance respectivamente:
Los dos últimos criterios dan respuestas completamente adversas (cuanto menor sea el número de grupos, mejor) que los criterios tercero y cuarto. ¿Cómo es eso posible? Para mí, parece que solo los dos primeros criterios fueron capaces de dar sentido a la agrupación. Un ancho de silueta de alrededor de 0.6 no es tan malo. ¿Debería saltear los indicadores que dan respuestas extrañas y creer en los que dan respuestas razonables?
Editar: Parcela para 22 grupos
Editar
Puede ver que los datos están bastante bien agrupados en 22 grupos, por lo que los criterios que indican que debe elegir 2 grupos parecen tener debilidades, la heurística no funciona correctamente. Está bien cuando puedo trazar los datos o cuando los datos se pueden empaquetar en menos de 4 componentes principales y luego se trazan. ¿Pero si no? ¿Cómo debo elegir el número de clústeres que no sea mediante el uso de un criterio? He visto pruebas que indican que Calinski y Ratkowsky son criterios muy buenos y aún así dan resultados adversos para un conjunto de datos aparentemente fácil. Entonces, tal vez la pregunta no debería ser "¿por qué los resultados son diferentes" sino "cuánto podemos confiar en esos criterios?".
¿Por qué una métrica euclidiana no es buena? No estoy realmente interesado en la distancia real, exacta entre ellos. Entiendo que la distancia real es esférica, pero para todos los puntos A, B, C, D si es esférica (A, B)> esférica (C, D) que también euclidiana (A, B)> euclidiana (C, D) que debería ser suficiente para una métrica de agrupamiento.
¿Por qué quiero agrupar esos puntos? Quiero construir un modelo predictivo y hay mucha información contenida en la ubicación de cada observación. Para cada observación también tengo ciudades y regiones. Pero hay demasiadas ciudades diferentes y no quiero hacer, por ejemplo, 5000 variables de factores; Por lo tanto, pensé en agruparlos por coordenadas. Funcionó bastante bien ya que las densidades en diferentes regiones son diferentes y el algoritmo lo encontró, 22 variables de factores estarían bien. También podría juzgar la bondad de la agrupación por los resultados del modelo predictivo, pero no estoy seguro de si esto sería sabio computacionalmente. Gracias por los nuevos algoritmos, definitivamente los probaré si funcionan rápidamente en grandes conjuntos de datos.