Del aprendizaje supervisado al no supervisado

Intermedio
Scikit Learn
Scikit Learn
Actualizado: 09/05/2026

La ausencia de y cambia la pregunta

En aprendizaje supervisado, el modelo aprende una relación entre X e y. La pregunta suele ser directa: qué clase tendrá este caso o qué valor numérico tendrá esta variable.

En aprendizaje no supervisado, no existe y. El modelo solo recibe X y busca estructura interna: grupos de muestras parecidas, direcciones principales de variación, anomalías o representaciones más compactas.

from sklearn.datasets import load_wine

wine = load_wine(as_frame=True)
df = wine.frame

X = df.drop(columns="target")
y = df["target"]

print("Supervisado:", X.shape, y.shape)
print("No supervisado:", X.shape)

En un ejercicio supervisado, target es la respuesta. En un ejercicio no supervisado, esa columna puede ignorarse, ocultarse o usarse solo después para interpretar si los grupos encontrados tienen sentido.

Esta diferencia parece pequeña en código, pero es profunda a nivel pedagógico: ya no se trata de "acertar una etiqueta", sino de descubrir una organización útil en los datos.

PCA no clasifica, representa

PCA reduce la dimensionalidad buscando nuevas variables, llamadas componentes principales, que capturan la mayor parte de la variabilidad. No predice una clase, no produce una métrica de accuracy y no "sabe" qué significa cada etiqueta.

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

X_scaled = StandardScaler().fit_transform(X)

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

print(X_pca[:5])
print(pca.explained_variance_ratio_)

El resultado X_pca es una nueva representación de los mismos datos, ahora con dos columnas. Es útil para visualizar, comprimir, detectar relaciones o alimentar otros modelos.

flowchart LR
    original["X original<br>muchas columnas"] --> scaler["Escalado"]
    scaler --> pca["PCA"]
    pca --> reduced["X reducido<br>2 componentes"]

Clustering no predice clases conocidas

Clustering agrupa muestras similares. KMeans, por ejemplo, asigna cada muestra al centroide más cercano. El número del cluster no es una clase real, sino una etiqueta creada por el algoritmo.

from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42)
clusters = kmeans.fit_predict(X_scaled)

print(clusters[:10])

Si el cluster 0 contiene muchos clientes de alto valor, esa interpretación la aporta el análisis posterior, no el algoritmo por sí solo.

En clasificación, una etiqueta como fraude viene del histórico. En clustering, una etiqueta como cluster 2 necesita interpretación humana para convertirse en una decisión de negocio.

Por eso conviene inspeccionar los grupos:

resumen = df.drop(columns="target").copy()
resumen["cluster"] = clusters

print(resumen.groupby("cluster").mean(numeric_only=True).round(2))

Cómo validar sin respuestas correctas

En no supervisado no hay una respuesta perfecta contra la que comparar. Aun así, se pueden usar criterios internos como silhouette score, inercia en KMeans o análisis visual en dos dimensiones.

from sklearn.metrics import silhouette_score

score = silhouette_score(X_scaled, clusters)
print(f"Silhouette: {score:.3f}")

La métrica ayuda, pero no sustituye el criterio de dominio. Un cluster matemáticamente compacto puede no tener valor operativo, y un cluster menos limpio puede revelar un segmento útil para negocio.

El objetivo de este bloque no es memorizar todos los algoritmos, sino entender qué cambia cuando se trabaja sin y: cambia la pregunta, cambia la evaluación y cambia la forma de interpretar el resultado.

Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Scikit Learn es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de Scikit Learn

Explora más contenido relacionado con Scikit Learn y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Diferenciar el razonamiento supervisado y no supervisado, preparar X sin variable objetivo y entender cuándo usar reducción de dimensionalidad o clustering.