Cargando tu progreso…

Pokédex Codex

ML: clustering

META

🎯 Meta: descubrir grupos en los datos sin tener las respuestas. Es el aprendizaje no supervisado: el modelo agrupa solo lo que se parece.

Hasta ahora siempre tuvimos y (las respuestas). Pero a veces no las tenés y querés que la IA descubra la estructura sola. Por ejemplo: agrupar Pokémon parecidos sin decirle de qué tipo son. Eso es clustering.

🧩 KMeans: armar k grupos

KMeans divide los datos en k grupos poniendo juntos los que están cerca.

import numpy as np
from sklearn.cluster import KMeans

# stats de 6 Pokémon: dos "familias" bien separadas
X = np.array([[1, 1], [2, 1], [1, 2], [10, 10], [11, 10], [10, 11]])

modelo = KMeans(n_clusters=2, random_state=0, n_init=10)
modelo.fit(X)

print("grupo de cada uno:", modelo.labels_)   # ej: [0 0 0 1 1 1]
TIP

💡 Los números de grupo (0, 1) son arbitrarios: lo que importa es que los parecidos quedaron juntos. random_state=0 y n_init=10 lo hacen reproducible.

🔮 ¿A qué grupo va uno nuevo?

import numpy as np
from sklearn.cluster import KMeans

X = np.array([[1, 1], [2, 1], [10, 10], [11, 10]])
modelo = KMeans(n_clusters=2, random_state=0, n_init=10).fit(X)

# un Pokémon nuevo cercano a la primera familia
print(modelo.predict([[1.5, 1.5]]))   # el grupo de los primeros
P: ¿Qué diferencia al clustering (aprendizaje no supervisado) de la clasificación?
- El clustering necesita más datos para funcionar
+ En clustering no hay etiquetas `y`; el modelo descubre los grupos solo
- El clustering predice números en vez de categorías
> En clasificación tenés `y` (las respuestas correctas). En clustering **no tenés `y`**: el modelo agrupa los datos por similitud sin que nadie le diga cuáles van juntos.

🎯 Supervisado vs no supervisado

SupervisadoNo supervisado
Tenés ysí (las respuestas)no
Hacepredecir una etiquetadescubrir grupos
Ejemplosclasificación, regresiónclustering (KMeans)
TIP

💡 El clustering sirve para explorar: segmentar clientes, agrupar noticias parecidas, detectar familias de Pokémon… todo sin etiquetas previas.

P: ¿Qué guarda `modelo.labels_` después de un `KMeans.fit(X)`?
- Los centros (centroides) de cada grupo
- Los datos de entrada `X` ordenados por grupo
+ Un número de grupo para cada dato de `X`
> `labels_` es un arreglo con el mismo largo que `X`. Cada posición tiene el número de grupo al que pertenece ese dato: `[0, 0, 0, 1, 1, 1]` significa que los 3 primeros van al grupo 0 y los 3 últimos al grupo 1.

📝 Resumen

CosaPara qué
no supervisadoaprender sin respuestas (y)
KMeans(n_clusters=k)armar k grupos
.labels_a qué grupo quedó cada dato
.predict([fila])grupo de un dato nuevo

➡️ ¿Y ahora qué?

Practicá con los ejercicios de este tema. 💪

ÁNIMO

“Sin respuestas, sin problema: la IA encuentra el orden escondido en los datos.”