Urgente: Implementación del algoritmo de agrupamiento k-means
El algoritmo K-means acepta una cantidad de entrada k y luego divide n objetos de datos en k grupos para que los grupos generados cumplan los siguientes criterios: los objetos en el mismo grupo tienen mayor similitud ; los objetos en diferentes grupos tienen menor similitud. La similitud de los grupos se calcula utilizando un "objeto central" (centro de gravedad) que se toma como la media de los objetos en cada grupo.
El principio de funcionamiento del algoritmo K-means es el siguiente: primero, k objetos se seleccionan aleatoriamente de n objetos de datos como los centros de agrupamiento iniciales y para los objetos restantes, en función de su similitud con estos agrupamientos; grados (distancia) de los centros, asígnelos respectivamente al grupo que sea más similar a él (representado por el centro del grupo y luego calcule el centro del grupo de cada nuevo grupo (el promedio de todos los objetos en el grupo); Luego se calcula el centro del grupo (el promedio de todos los objetos en el grupo) para cada grupo recién obtenido; este proceso se repite hasta que la función de medición normalizada comienza a converger; Es común utilizar el error cuadrático medio como función métrica estandarizada. Las características de k grupos son las siguientes: los grupos en sí son lo más compactos posible y los grupos están lo más separados posible.
El método específico es el siguiente:
Entrada: k, datos[n];
(1) Seleccione k puntos centrales iniciales, por ejemplo, c [0]= datos[0],...c[k-1]=datos[k-1];
(2) Para datos[0]....datos[n], respectivamente con c[ 0]...c[k-1] para comparar. Se compara c[n-1] y el punto con la diferencia más pequeña con respecto a c[i] se marca como i;
(3) Para todos los puntos marcados como i, se vuelve a calcular c[i]={ La suma de todos los datos [j] marcados como i}/el número de puntos marcados como i;
(4) Repita (2)(3) hasta que cambien todos los valores de c[i] son inferiores al umbral establecido.
El algoritmo debe ser fácil de implementar, por lo que no escribiré el código por ti.