Modelos aglomerativos
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 17 de 51.
Los coches llenan dos aparcamientos, con una fila de coches a lo largo de la carretera que hay entre ellos. Dos formas de agruparlos en 2 clústeres:
scikit-learn realiza las fusiones. Indica dónde detenerte con n_clusters:
from sklearn.cluster import AgglomerativeClustering
model = AgglomerativeClustering(n_clusters=2, linkage="ward")
labels = model.fit_predict(X)linkage determina qué tan separados están dos grupos:
"ward", el valor predeterminado: mantiene los grupos compactos"complete": su par más lejano"average": el promedio de todos los pares"single": su par más cercano
Single sigue cadenas: aquí la carretera se traga ambos aparcamientos. Ward forma grupos redondos y uniformes.
Desafío
IntermedioLas fresas silvestres crecen en tres grupos, además de unas pocas a lo largo de un sendero. ¿Qué enlace encuentra los grupos? plants contiene sus posiciones.
- Para cada enlace en
linkages, agrupa las plantas en 3 grupos. - Imprime los tamaños de los grupos en una lista, del más grande al más pequeño.
- Cuando el grupo más grande contiene más de la mitad de las plantas, añade
chained.
Para otro prado:
ward: [40, 38, 31]
complete: [41, 37, 31]
average: [41, 37, 31]
single: [86, 22, 1] chainedPruébalo tú mismo
import numpy as np
import pandas as pd
from sklearn.cluster import AgglomerativeClustering
# Dónde crecen 109 plantas de fresa silvestre en un prado (metros): tres grupos y un sendero
rng = np.random.default_rng(4)
plants = np.round(np.concatenate([
rng.normal([2, 3], 0.8, size=(40, 2)),
rng.normal([9, 4], 1.0, size=(35, 2)),
rng.normal([6, 10], 0.9, size=(25, 2)),
np.column_stack([np.linspace(3, 8, 9), np.linspace(3.2, 4, 9)]) + rng.normal(0, 0.15, size=(9, 2)),
]), 2)
linkages = ["ward", "complete", "average", "single"]
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje no supervisado
1Encontrar grupos
Aprender sin etiquetasMedir la similitudK-Means a manoK-Means en scikit-learnRepaso: miembros del gimnasio7PCA en la práctica
Visualizar 64 dimensionesComponentes como patronesComprimir y reconstruirPCA antes de un modeloRepaso: escáner facial10Proyecto: Explorador de dígitos
Observa los dígitosReduce con PCAAgrupa los dígitosPon nombre a los gruposEncuentra los diferentes2Elegir k
InerciaEl método del codoPuntuaciones de siluetaEscalar antes de agruparRepaso: zonas de entrega3Interpretación de los clústeres
Perfilado de clústeresCentros en unidades realesClústeres frente a etiquetas conocidasCuándo falla K-MeansRepaso: cata de téPractica por tu cuenta: Compilador de Python online