La idea básica de la agrupación
Como dice el refrán, "Los iguales se atraen, las personas en los grupos"
La agrupación --Clustering-- es un aprendizaje no supervisado , en pocas palabras, es el regreso a objetos similares en el mismo grupo . Los objetos más similares dentro del clúster, el mejor agrupamiento.
Definición: Dado un conjunto de objetos de datos, las divisiones de agrupamiento de los datos en grupos, y que una reunión divididas de dos condiciones: (1) Cada grupo contiene al menos un objeto, (2), y cada objeto pertenece a solamente pertenecer a un clúster.
La idea básica: dada , el algoritmo dado por primera vez un método de partición inicial, después del cambio por el método de la división iterativa, el esquema de división en el tiempo de tal manera que cada uno tiene una mayor mejoría después de una previa
algoritmo K-Means
algoritmo K-medias es la agrupación método más clásico basado en la partición, es uno de los diez algoritmos de minería de datos clásicos. En pocas palabras, en las K-medias es ninguna señal de supervisión en el caso en que los datos se divide en K partes de un proceso.
algoritmo de agrupamiento aprendizaje no supervisado es la forma más común, dado un conjunto de datos, tenemos que cavar la agrupación algoritmos de información de los datos ocultos . La agrupación algoritmo es muy amplia: el comportamiento del cliente agrupación, la agrupación de Google Noticias.
valor de K es el número de racimos resultados en la categoría. Simplemente significa que queremos dividir el número de categorías de datos
algoritmo
Los pasos específicos del algoritmo son las siguientes:
- K seleccionados al azar puntos centrales
- Asignado a cada punto de datos desde su punto central más cercana ;
- puntos de cada clase recalculada a la clase desde el punto central de la media
- La asignación de cada dato a su punto central más cercana ;
- Repetir los pasos 3 y 4 hasta que todas las observaciones ya no están asignados o el número máximo de iteraciones (R & lt predeterminado a 10 veces el número de iteraciones )
- El código siguiente conjunto de datos generado aleatoriamente
-
. 1 Importación numpy AS NP 2 Importación matplotlib.pyplot AS PLT 3. 4. # Distancia entre dos puntos 5. DEF Distancia (E1, E2): . 6 retorno np.sqrt ((E1 [0] -e2 [0]) ** 2 + (E1 [. 1] -e2 [. 1]) ** 2 ) . 7 . 8 # centro colección . 9 DEF medios (ARR): 10 de retorno np.array ([np.mean ([E [0] para E en ARR]), NP. Mean ([E [1]. para E en ARR])]) 11. 12 es # Arr un elemento de distancia más lejana se utiliza para inicializar el centro de la agrupación 13 es DEF más lejano (k_arr, ARR): 14 F = [0, 0] 15 max_d = 0 16 para E en ARR: . 17 D = 0 18 es para I en Rango (k_arr. El __len__ ()): . 19 D = D + np.sqrt (Distancia (k_arr [I] , E)) 20 se IF D> max_d: 21 es max_d = D 22 es F = E 23 es de retorno F 24 25 # Arr un elemento de distancia más cercana para el clúster 26 se DEF más cercano (a, ARR): 27 C = ARR [1. ] 28 min_D = Distancia (A, ARR [1. ]) 29 ARR = ARR [1. :] 30 para E en ARR: 31 es D = Distancia (A, E) 32 SI D < min_D: 33 es min_D = D 34 es C = E 35 de retorno C 36 37 [ 38 es SI el __name__ == " __main__ " : 39 # # generado al azar coordenadas bidimensionales (si el conjunto de datos mejor) 40 = Np.random.randint ARR (100, tamaño = (100 ,. 1, 2 )) [:, 0 ,:] 41 es 42 es # # centro de la agrupación y el recipiente de inicialización clúster 43 es . M 5 = 44 es R & lt = np.random. (. ARR la randint la __len__ . () - 1 ) 45 k_arr = np.array ([ARR [R & lt]]) 46 es cla_arr = [[]] 47 para I en Rango (1-m. :) 48 K = más lejano (k_arr, ARR ) 49 k_arr = np.concatenate ([k_arr, np.array ([K])]) 50 cla_arr.append ([]) 51 es 52 es # # clustering iterativo 53 = 20 es N 54 se cla_temp = cla_arr 55 para I en Rango (n): # iteración n veces 56 es para E en ARR: # para ajustar cada elemento en el polietileno a la clase más cercana 57 es Ki = 0 # asume que el primer centro de la más cercana 58 min_D = Distancia (E, k_arr [Ki]) 59 para J en Rango (1, k_arr.. la __len__ ()): 60 SI Distancia (E, k_arr [J]) <min_D: # encontró más cerca del centro de la agrupación 61 = min_D Distancia (E, k_arr [J]) 62 es Ki = J 63 es cla_temp [Ki] .Append (E) 64 # iterativamente actualizados centros de los conglomerados 65 para K en Rango (. K_arr El __len__ ()): 66 IF n-- 1 ==. I: 67 PAUSA 68 k_arr [K] = medios (cla_temp [K]) 69 cla_temp [K] = [] 70 71 es # # visual display 72 COL = [ ' HotPink ' , ' el Aqua ' , ' Chartreuse ' ,' Amarilla ' , ' LightSalmon ' ] 73 para i en rango (m): 74 plt.scatter (k_arr [i] [0], k_arr [i] [1], anchura de línea = 10, color = col [i]) 75 plt.scatter ([e [0] para e en cla_temp [i]], [e [1] para e en cla_temp [i]], color = col [i]) 76 plt.show ()
- El entrenamiento de los resultados:
-
Detalles de K-medias
-
valor de K dado, ¿cómo? ¿Cómo debo saber varias categorías?
R: Esto es realmente no hay una práctica establecida en varias categorías dependiendo de la experiencia y los sentimientos personales, la práctica habitual es tratar un valor de K pocos, dividida en varias categorías verse mejor interpretación de los resultados, más en línea con el propósito de análisis y así sucesivamente . Los diversos valores de K o pueden calcularse SSE comparación, tomando el valor K mínimo de SSE. -
El inicial K baricentro cómo la elección?
A: El método más común es seleccionado de forma aleatoria , la selección de centro inicial de masa de la agrupación definitiva afecta a los resultados, por lo que el algoritmo debe ejecutar varias veces, que los resultados más razonable, que utilizará los resultados. Por supuesto, hay algunos métodos de optimización, el primero es para seleccionar un punto más alejado de uno al otro, específicamente, para seleccionar el primer punto y el segundo punto se selecciona de cuando el primer punto más lejano, y seleccionar la tercera puntos, el tercer punto a la primera, la segunda y la distancia mínima entre dos puntos, y así sucesivamente. El segundo es conseguir que los resultados de la agrupación en base a otros algoritmos de agrupamiento (como agrupación jerárquica), los resultados de cada categoría a elegir un punto. -
K-medias no caerá en el proceso electoral ha sido el centro de masa, no se detienen?
R: No, no hay prueba matemática de K-medias convergerán , la idea general es utilizar el concepto de la ESS (es decir, suma de cuadrados), es decir, la distancia a cada punto del centro de masa y la plaza en sí pertenece, y esto es un cuadrado función y, a continuación, ser capaz de demostrar que esta función es una función podría llegar a converger
-
referencia: