Permítame, sin ir muy lejos, simplemente copiar y pegar una lista de opciones de mi propia función !kmini
(una macro para SPSS), que se encuentra en la colección "Clustering" aquí .
Método para crear o seleccionar centros de clúster iniciales. Escoger:
- RGC - centroides de submuestras aleatorias . Los datos se dividen al azar por
k
no solapada, por la pertenencia, grupos, y centroides de estos grupos son designados para ser los centros iniciales. Por lo tanto, los centros se calculan, no se seleccionan de los casos de conjuntos de datos existentes. Este método produce centros que se encuentran cercanos entre sí y al centroide general de los datos.
- RP: puntos seleccionados al azar .
k
Se seleccionan aleatoriamente casos distintos de los datos para ser los centros iniciales.
- RUNFP:
puntos más lejanos (selección de carrera). Los primeros
k
casos se toman como centros y luego, durante la ejecución del resto de los casos del conjunto de datos, se realizan progresivamente reemplazos entre los centros; El objetivo de los reemplazos es obtener en los k
puntos finales más distantes entre sí en el espacio variable. Estos puntos (casos) que ocupan posiciones periféricas en la nube de datos son los centros iniciales producidos. (El método se utiliza por defecto en el procedimiento SPSS k-means QUICK CLUSTER
. Consulte los detalles en Algoritmos SPSS. Consulte también se describe aquí ).
- SIMFP: puntos más lejanos (selección simple). El primer centro se selecciona como un caso aleatorio del conjunto de datos. El segundo centro se selecciona como el caso máximo distante de ese centro. El tercer centro se selecciona como el caso máximo alejado de esos dos (del más cercano de los dos), y así sucesivamente.
- KMPP: puntos aleatorios más lejanos, o k-means ++. El primer centro se selecciona como un caso aleatorio del conjunto de datos. El segundo centro se selecciona también al azar, pero la probabilidad de selección de un caso es proporcional a la distancia (cuadrada euclidiana) de ese a ese (1er) centro. El tercer centro también se selecciona aleatoriamente con la probabilidad de selección proporcional a la distancia de un caso al más cercano de esos dos centros, y así sucesivamente. (Arthur, D., Vassilvitskii, S .. K-means ++: las ventajas de una siembra cuidadosa. // Actas del 18º simposio anual ACM-SIAM sobre algoritmos discretos. 2007., 1027–1035.)
- GREP - puntos representativos del grupo . La idea del método: recolectar como centros
k
casos más representativos, "adjuntos". El primer centro se toma como el caso más cercano al centro de datos general. Luego, el resto de los centros se seleccionan de los puntos de datos de tal manera que cada punto se considera si está más cerca (y cuánto, en términos de distancia euclidiana al cuadrado) a un conjunto de puntos que cada uno de estos últimos es a cualquiera de los centros ya existentes. Es decir, cada punto se considera un candidato para representar algún grupo de puntos que aún no están suficientemente representados por los centros ya recopilados. El punto más representativo a este respecto se selecciona como el próximo centro. (Kaufman, L. Rousseeuw, PJ Encontrar grupos en datos: una introducción al análisis de conglomerados, 1990. Ver también: Pena, JM et al. Una comparación empírica de cuatro métodos de inicialización para el algoritmo K-means // Pattern Recognition Lett. 20 (10), 1999,
- [También hay un buen método, aún no implementado por mí en la macro, para generar
k
puntos que sean de uniforme aleatorio pero "menos aleatorio que aleatorio", en algún lugar entre aleatorio y codicia; ver base teórica potencial para ese método]
- Un método más es hacer agrupación jerárquica por el método de Ward. Puede hacerlo en una submuestra de objetos si la muestra es demasiado grande. Entonces los medios de los
k
grupos producidos por él son las semillas iniciales para el procedimiento k-means. Ward es preferible a otros métodos de agrupamiento jerárquico porque comparte el objetivo objetivo común con k-means.
Los métodos RGC, RP, SIMFP, KMPP dependen de números aleatorios y pueden cambiar su resultado de una ejecución a otra.
El método RUNFP puede ser sensible al orden de los casos en el conjunto de datos; pero el método GREP no lo es (aparte de las ocasiones en que hay muchos casos, vínculos, datos idénticos). El método GREP puede fallar al recopilar todos los k
centros si k
es grande en relación con el número de casos en los datos ( n
), especialmente cuando k>n/2
. [La macro informará si los datos no permiten que ese método recolecte k
centros]. El método GREP es el más lento, calcula [en mi implementación] la matriz de distancias entre todos los casos, por lo tanto, no es adecuado si hay muchas decenas de miles o millones de casos. Sin embargo, podría hacerlo en una submuestra aleatoria de los datos.
No estoy discutiendo actualmente qué método es "mejor" y en qué circunstancia, porque hasta ahora no he hecho una investigación simulada exhaustiva de la pregunta. Mis impresiones muy preliminares y superficiales han sido que GREP es particularmente valioso (pero es costoso), y que si desea un método realmente barato que sea lo suficientemente competitivo, entonces solo k puntos aleatorios, RP, es una opción decente.
La última vez que hice una revisión exhaustiva de la literatura sobre esto, que fue admitida hace casi 20 años, las dos recomendaciones principales fueron:
En las aplicaciones de Big Data, el método de Ward no funciona tan bien, aunque puede aplicarse a una submuestra.
Hice algunas simulaciones, que nunca pude publicar, y descubrí que:
La principal conclusión que saqué de esto es que el algoritmo SPSS es sorprendentemente bueno, pero si uno tiene los recursos, más de 1000 puntos de inicio aleatorios es el camino a seguir.
fuente
Con la nomenclatura de ttnphns, probé RGC, RP y KMPP en:
No recomiendo RGC porque los centros resultantes están muy cerca uno del otro: la media de muchos puntos está cerca de la media global (ley de los grandes números). Esto puede ralentizar mucho la convergencia: lleva algún tiempo antes de que los grupos comiencen a individualizarse.
El RP es generalmente bueno y lo recomendaría como la primera opción fácil.
KMPP es muy popular y funciona muy bien en pequeñas dimensiones: en comparación con RP, tiende a reducir la probabilidad de terminar en un mínimo local.
Sin embargo, cuando estaba trabajando en grandes conjuntos de datos (1 millón de puntos que son una bolsa de palabras de documentos de texto con gran dimensión), RP superó ligeramente a KMPP en el sentido de que terminó con un poco menos de iteraciones. Me sorprendió esto. En un gran conjunto de datos / alta dimensión, la convergencia al mínimo global es imposible, se mide la calidad como "cuán bueno es el mínimo local" = "cuán pequeño es el SOD final". Ambos métodos tenían la misma calidad.
Tenga en cuenta que es importante utilizar un método aleatorio si desea utilizar réplicas para mejorar la calidad.
fuente