1) El proceso de agrupación k-means de juego manual de naipes:> 30 cartas, 3 tipos
2). * El algoritmo K-means se escribe independientemente, la agrupación se realiza en los datos de longitud del pétalo del iris y se muestra con un diagrama de dispersión. (Puntos más)
3). Utilice sklearn.cluster.KMeans y datos de longitud de pétalo de iris para la agrupación y visualización con diagrama de dispersión.
4). Los datos completos de las flores de iris se agrupan y se muestran con un diagrama de dispersión.
5) ¿Piensa en lo que se usa en el algoritmo k-means?
Respuesta:
1) El proceso de agrupación k-means de ensayo manual para jugar a las cartas:> 30 cartas, 3 tipos
Seleccione aleatoriamente tres centros (8, 3, 2);
Después del primer paso, se convierte en (9, 4, 2);
Después del segundo paso, se convierte en (10, 6, 2), que no ha cambiado, y el centro del grupo es (10, 6, 2);
2) Escriba el algoritmo K-means de forma independiente, use los datos de la longitud del pétalo del iris para la agrupación y muéstrelo con un diagrama de dispersión.
# - * - coding:. UTF-8 - * - de sklearn.datasets importación load_iris importación PANDAS como Pd importación numpy, como NP importación matplotlib.pyplot AS PLT # espacio Seleccionar datos K objetos como los centros iniciales, cada objeto representa una centro de la agrupación; DEF initcenter (Data, K): m [. 1] = data.shape # número de muestras de una propiedad Center = [] TEMP = 0 temptemp = 0 para I en Rango (K): TEMP = np.random. randint (0, len (datos)) si temp! =temptemp: center.append (data [temp ,: ]) temptemp = temp else : print ( " 重复 啦" ) i - = 1 center = np.array (centro) devuelve centro def más cercano (centro, x): distancia = [ ] para j en el rango (k): distance.append (sum ((x - center [j ,:]) ** 2 )) # print (np.argmin (distance)) y = np.argmin (distance) returny def xclassify (datos, y, centro): para índice, x en enumerar (datos): y [índice] = más cercano (centro, x) devuelve y def kcmean (datos, y, centro, k): m = datos. forma [1 ] center_new = np.zeros ([k, m]) para i en el rango (k): index = y == i center_new [i ,: ] = np.mean (data [index,:], axis = 0) if np.all (center_new == center): centro de retorno , Falso más: Centro = center_new retorno centro, True # inicialización; invoca el Centro generan SI el __name__ == ' __main__ ' : datos = . Load_iris () Datos Centro = initcenter (datos ,. 3 ) K = int (ENTRADA ( " Por favor, introduzca el número del centro de gravedad: " )) y = np.zeros (len (datos)) flag = Verdadero mientras flag: y = xclassify (data, y, center) center, flag =kcmean (datos, y, centro, k) imprimir ( " 聚类 结果 :" , y) para x en rango (len (datos)): plt.scatter (datos [x] [0], datos [x] [ 1 ], s = 30, c = ' b ' , marcador = ' . ' ) para k en rango (len (centro)): plt.scatter (centro [k] [0], centro [k] [ 1], s = 60, c = ' r ' , marcador = ' D ' ) plt.show ()
Resultado de la operación:
Resultados de visualización:
3) Utilice sklearn.cluster.KMeans y datos de longitud de pétalo de iris para la agrupación y visualización con diagrama de dispersión.
# - * - codificación: utf-8 - * - desde sklearn.datasets import load_iris desde sklearn.cluster import KMeans import matplotlib.pyplot como plt data_iris = load_iris (). data speal_width = data_iris [:, 2 ] X = speal_width.reshape (-1,1 ) X.shape kmeans_model = KMeans (n_clusters = 3 ) kmeans_model.fit (X) kmeans_model.predict ([[ 3.5 ]]) y_predict = kmeans_model.predict (X) kmeans_model.cluster_centers_ kmeans_model.labels_ plt.scatter (X [ :, 0], X [:, 0], c= y_predict, s = 50, cmap = " arcoiris " ) plt.show ()
Resultados de visualización:
4) Los datos completos de las flores de iris se agrupan y se muestran con un diagrama de dispersión.
# - * - codificación: utf-8 - * - desde sklearn.datasets import load_iris desde sklearn.cluster import KMeans import matplotlib.pyplot como plt data_iris = load_iris (). data kmeans_model = KMeans (n_clusters = 3 ) kmeans_model.fit (data_iris ) y_predict1 = kmeans_model.predict (data_iris) kmeans_model.cluster_centers_ kmeans_model.labels_ plt.scatter (data_iris [:, 2], data_iris [:, 3], c = y_predict1, s = 50, cmap = " rainbow " ) plt.ow ()
Resultados de visualización:
5) ¿Piensa en lo que se usa en el algoritmo k-means?
1. Clasificador de documentos
Divida los documentos en varias categorías según las etiquetas, los temas y el contenido del documento. Este es un problema de clasificación de algoritmo K-means muy estándar y clásico. En primer lugar, es necesario inicializar los documentos, expresar cada documento como un vector y usar la frecuencia de término para identificar términos comunes para la clasificación de documentos. Este paso es necesario. Luego, los vectores de documentos se agrupan para identificar la similitud en el grupo de documentos.
2. Clasificación del cliente
La agrupación en clúster puede ayudar a los especialistas en marketing a mejorar su base de clientes (trabajando en su área objetivo) y subdividir aún más las categorías de clientes en función del historial de compras del cliente, el interés o el monitoreo de la actividad.
3. Análisis del estado del equipo.
Analizar el estado de los jugadores siempre ha sido un elemento clave en el mundo del deporte. A medida que la competencia se vuelve más intensa, el aprendizaje automático también juega un papel vital en este campo. Si desea crear un equipo excelente y le gusta identificar jugadores similares en función del estado del jugador, entonces el algoritmo K-means es una buena opción.
4. Análisis de datos de viaje
El conjunto de datos de la información de viaje de Uber abierta al público nos brinda una gran cantidad de datos valiosos sobre el tráfico, el tiempo de tránsito y la ubicación máxima del viaje. El análisis de estos datos no solo es bueno para Uber, sino que también nos ayuda a tener una comprensión profunda de los patrones de tráfico de la ciudad para ayudarnos a hacer planes para la ciudad en el futuro.
5. Análisis cibernéticos criminales
El análisis de red es el proceso de recopilación de datos de individuos y grupos para identificar relaciones importantes entre los dos. El análisis de la red se origina en el archivo del crimen, que proporciona información del departamento de investigación para clasificar a los delincuentes en la escena del crimen.
6. Análisis detallado de los registros de llamadas.
Call Detail Record (CDR) es la recopilación de información sobre llamadas de usuarios, mensajes de texto y actividades de red por parte de compañías de telecomunicaciones. La combinación de registros detallados de llamadas con datos personales de los clientes puede ayudar a las compañías de telecomunicaciones a hacer más predicciones sobre las necesidades de los clientes.