¿Cuál es una buena manera de elegir los puntos iniciales de los grupos de k en el grupo de medios k?

Algunas de las buenas respuestas que encontré:

Método 1: (K significa ++)

Este enfoque reconoce que probablemente hay una mejor opción de ubicaciones de centroides iniciales que la asignación aleatoria simple. Específicamente, K-means tiende a funcionar mejor cuando los centroides se siembran de tal manera que no los agrupan en el espacio.

Paso 1: Elija uno de sus puntos de datos al azar como un centroide inicial.

Paso 2: Calcule D (x), la distancia entre su centroide inicial y todos los demás puntos de datos, x.

Paso 3: Elija su próximo centroide de los puntos de datos restantes con probabilidad proporcional a D (x) .D (x)

Paso 3: Repita hasta que se hayan asignado todos los centroides.

Nota: D (x) debe actualizarse a medida que se agreguen más centroides. Debe establecerse como la distancia entre un punto de datos y el centroide más cercano.

Ref: http://ilpubs.stanford.edu:8090/…

Método 2:

Paso 1: a partir de n objetos, calcule un punto cuyos valores de atributo son promedio de n-objetos atributo http://values.so primer centroide inicial es promedio en n-objetos.

Paso 2: seleccione los siguientes centroides iniciales de n-objetos de tal manera que la distancia euclidiana de ese objeto sea máxima desde otros centroides iniciales seleccionados.

Paso 3: repita el paso 2 hasta obtener k centroides iniciales. De estos pasos obtendremos los centroides iniciales y con estos centroides iniciales ejecutaremos el algoritmo kMeans.

Ref: http://www.ijcsmc.com/docs/paper…

Método 3: (Mejora en k mean ++)

Aunque k-means ++ es O (log k) competitivo en todos los conjuntos de datos, también produce diferentes grupos en diferentes ejecuciones debido a los pasos 1 y 3 en el algoritmo. Proponemos un método para los pasos 1, 3 de k-means ++ para producir una solución única en lugar de diferentes soluciones, más bien

El algoritmo propuesto para el método SPSS es un algoritmo de un solo paso:

Paso 1: Inicialice el primer centroide con un punto que esté cerca de más puntos en el conjunto de datos.

Paso 3: Suponga que m (número total de puntos) puntos se distribuyen uniformemente a k (número de grupos) grupos, entonces se espera que cada grupo contenga m / k puntos. Calcule la suma de las distancias desde el punto seleccionado (en el paso 1) hasta los primeros m / k puntos más cercanos y asuma como y.

Ref: http://arxiv.org/ftp/arxiv/paper…

Cualquiera que sea el método que elija para la inicialización del centro K-mean, debe seguir estos tres principios

  1. El orden de complejidad de su algoritmo debe permanecer lineal en el número de objetos de datos o de lo contrario es inútil porque K-mean es lineal en el número de objetos de datos.
  2. El método debe ser determinista, es decir, no debe tener elementos de aleatoriedad porque, en promedio, no será mejor que la elección aleatoria de los centros iniciales.
  3. El centro inicial debe estar lo suficientemente cerca de los centros finales. Esto no solo hará que la convergencia sea más rápida, sino que también ayudará a construir buenos clústeres.

Escribí un documento sobre este tema, que tiene más de 400 citas y es posible que desee leerlo para comprender más sobre el problema. El documento está disponible aquí https://www.researchgate.net/pro

Para obtener más detalles sobre este tema, lea esta respuesta: la respuesta de Shehroz Khan a ¿Por qué la selección inicial de semillas es importante en K-means Clustering? Algoritmo de selección de semillas like-SPSS

K-means ++ probablemente valga la pena el esfuerzo adicional para usar / implementar, ya que tiene límites demostrables sobre cuánto tiempo tomará estabilizarse (tl; dr: less). Combine esto con muchos pases (K-means ++ no selecciona de manera determinista los centroides iniciales, es solo una ‘mejor’ forma de elegirlos al azar), y estará listo para comenzar. 🙂

PD Para ser más claro, porque a veces es confuso, al ejecutar muchos ‘pases’ no me refiero a iteraciones / dentro / el algoritmo k-means hasta que los centroides dejen de moverse. Ejecutar el algoritmo k-means una vez hasta que se estabilice es 1 pase. Haga esto muchas veces (piense en bucles anidados) y elija el resultado final (conjunto de posiciones de centroide) que ocurrió con mayor frecuencia entre sus pases.

El artículo original:
Página en stanford.edu:8090

Puedes elegir los normales como Forgy o partición aleatoria. También podría echar un vistazo a k-means ++. Es un algoritmo para elegir los centroides iniciales para k-medias. K-significa ++

K-means tiene problemas locales óptimos. En general, desea hacer muchos inicios iniciales aleatorios, como 10,000. Por lo tanto, en algún nivel, el comienzo exacto no importa enormemente.

More Interesting

¿Cuál es un buen tutorial breve para usar el aprendizaje profundo para tareas de reconocimiento de imágenes?

¿Cuáles son algunos proyectos paralelos de Machine Learning que puedo implementar en mi tiempo libre?

En el modelado de datos, ¿podría ser una buena idea crear algorítmicamente una característica grande para activar las meta características actuales antes del modelado?

¿Cuáles son algunas aplicaciones potenciales del seguimiento de objetos depredadores (nuevo algoritmo)?

¿Puedo usar word2vec para hacer el análisis de co-palabras?

¿Cómo calcula el tema antes en el análisis latente probabilístico?

Si quiero aprender mucho sobre IA, aprendizaje automático y ciencia de datos, y no tengo absolutamente ninguna experiencia sobre ellos, ¿por dónde empiezo?

¿Qué es la indexación semántica latente?

Computación paralela: ¿Cuáles son los buenos enfoques y fuentes para programar CUDA en Machine Learning con datos a gran escala?

¿Cuáles son los poderes de clasificación sobre la agrupación? ¿Por qué elegiría una clasificación?

¿Cuál es la diferencia entre validación y validación cruzada?

¿Cuáles son los algoritmos estándar para la inferencia en redes bayesianas?

¿Qué pasos de procesamiento previo recomendaría para un aprendizaje automático exitoso en un conjunto de datos MNIST?

En una explicación intuitiva, ¿cómo puedo calcular formas primarias y duales en SVM?

¿Cómo debo implementar la detección de fraude con tarjeta de crédito usando redes neuronales?