MAT281 - Laboratorio N°16: Aprendizaje No Supervisado: Clustering y PCA¶
Objetivos del laboratorio¶
- Comprender la diferencia entre aprendizaje supervisado y no supervisado.
- Aplicar el algoritmo K-Means y elegir
k(codo y silueta). - Perfilar e interpretar los clusters obtenidos.
- Reducir dimensionalidad con PCA y analizar la varianza explicada.
- Combinar PCA + K-Means para visualizar agrupamientos.
Instrucciones¶
Lea con atencion cada problema antes de resolverlo. Reemplace cada celda que contiene # FIXME con su propia solucion y, cuando se solicite, responda las preguntas en celdas de texto.
Nota: Puede apoyarse en asistentes virtuales (ChatGPT, Gemini, Claude) o en el autocompletado de Colab, pero asegurese de entender cada linea de codigo que entregue.
In [ ]:
Copied!
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
Problema 01 — Preparacion de datos¶
Usaremos el dataset Wine de scikit-learn (13 variables quimicas de vinos). En clustering ignoramos la etiqueta y buscamos estructura en los datos.
Tu tarea:
- Carga
load_wine(as_frame=True)y separa solo la matrizX. - Estandariza todas las variables (clave para K-Means y PCA).
- Pregunta: ¿por que la estandarizacion es importante antes de K-Means?
In [ ]:
Copied!
from sklearn.datasets import load_wine
# FIXME
from sklearn.datasets import load_wine
# FIXME
Respuesta (Problema 01): (escribe aqui)
Problema 02 — K-Means y eleccion de k¶
Tu tarea:
- Aplica el metodo del codo: ajusta K-Means para $k = 1..10$ y grafica la
inercia (
inertia_). - Calcula el coeficiente de silueta (
silhouette_score) para $k = 2..6$. - Pregunta: ¿que valor de
ksugieren ambos criterios?
In [ ]:
Copied!
from sklearn.metrics import silhouette_score
# FIXME
from sklearn.metrics import silhouette_score
# FIXME
Respuesta (Problema 02): (escribe aqui)
Problema 03 — Perfilado de clusters¶
Tu tarea:
- Ajusta K-Means con el
kelegido y asigna la etiqueta de cluster a cada vino. - Calcula la media de cada variable por cluster (
groupby). - Pregunta: describe en palabras que caracteriza a cada grupo.
In [ ]:
Copied!
# FIXME
# FIXME
Respuesta (Problema 03): (escribe aqui)
Problema 04 — PCA y varianza explicada¶
Tu tarea:
- Aplica
PCAsobre los datos estandarizados. - Grafica la varianza explicada acumulada en funcion del numero de componentes.
- Pregunta: ¿cuantas componentes se necesitan para explicar al menos el 80% de la varianza?
In [ ]:
Copied!
# FIXME
# FIXME
Respuesta (Problema 04): (escribe aqui)
Problema 05 — PCA + K-Means en 2D¶
Tu tarea:
- Proyecta los datos a las 2 primeras componentes principales.
- Grafica un scatter coloreado por la etiqueta de cluster de K-Means.
- Pregunta: ¿se distinguen visualmente los grupos en el plano de las dos primeras componentes?
In [ ]:
Copied!
# FIXME
# FIXME
Respuesta (Problema 05): (escribe aqui)