Menu
CoddyTech

Perfilado de clústeres

Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 11 de 51.

Este capítulo convierte los números de los clústeres en grupos que las personas pueden usar. Al terminarlo, cada clúster tendrá un nombre:

120 visitantes de un parque temático representados como puntos, con las horas en el parque en el eje horizontal y las atracciones a las que subieron en el eje vertical, divididos en tres grupos nombrados en la leyenda: amantes de las emociones fuertes arriba a la derecha, familias en el medio y visitantes rápidos abajo a la izquierda

Un número como 2 no dice nada. Su perfil sí: la media de cada característica dentro del clúster. Añade las etiquetas como columna y luego agrúpalas:

park["cluster"] = km.labels_
print(park.groupby("cluster").mean().round(1))

Esto imprime una fila por clúster:

         hours  rides   age
cluster
0          6.0    6.2  38.4
1          2.4    3.0  45.8
2          6.8   13.9  20.7

Ahora lee las filas como palabras. El clúster 2 es joven, permanece 7 horas y realiza 14 viajes: buscadores de emociones. El clúster 1 se va temprano: visitantes rápidos.

challenge icon

Desafío

Intermedio

Un bar de karaoke quiere conocer a sus clientes. El código inicial los divide en 3 grupos; names contiene un nombre para cada uno, ordenados de menor a mayor número de visitas al mes.

  1. Añade las etiquetas a guests en una columna cluster.
  2. Describe los grupos: sus medias y el número de clientes de cada uno, ordenados por visits_month.
  3. Imprime una línea por grupo con su nombre y las medias con 1 decimal.

Para otro bar:

Once in a while: 30 guests, 1.4 visits a month, 2.5 songs, 3.2 hours
Regulars: 45 guests, 3.0 visits a month, 4.6 songs, 2.0 hours
Superfans: 15 guests, 7.4 visits a month, 9.2 songs, 2.8 hours

Pruébalo tú mismo

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# 110 clientes de un bar de karaoke: visits a month, canciones por visita, horas por visita
guests = pd.read_csv("karaoke.csv")
scaled = StandardScaler().fit_transform(guests)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(scaled)

# Nombres de los grupos, de menos a más visitas al mes
names = ["Once in a while", "Regulars", "Superfans"]

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje no supervisado

Practica por tu cuenta: Compilador de Python online