Modelos aglomerativos
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 17 de 51.
Carros ocupam dois estacionamentos, com uma fila de carros ao longo da estrada entre eles. Duas maneiras de agrupar em 2 clusters:
O scikit-learn faz as junções. Indique onde parar com n_clusters:
from sklearn.cluster import AgglomerativeClustering
model = AgglomerativeClustering(n_clusters=2, linkage="ward")
labels = model.fit_predict(X)linkage decide o quão distantes dois grupos estão:
"ward", o padrão: mantém os grupos compactos"complete": o par mais distante entre eles"average": a média de todos os pares"single": o par mais próximo entre eles
O método Single segue cadeias: aqui, o caminho incorpora os dois estacionamentos. Ward forma grupos arredondados e equilibrados.
Desafio
MédioMoranguinhos silvestres crescem em três agrupamentos, além de alguns ao longo de um caminho. Qual método de ligação encontra os agrupamentos? plants contém suas posições.
- Para cada método de ligação em
linkages, agrupe as plantas em 3 grupos. - Imprima os tamanhos dos grupos como uma lista, do maior para o menor.
- Quando o maior grupo tiver mais da metade das plantas, acrescente
chained.
Para outro campo:
ward: [40, 38, 31]
complete: [41, 37, 31]
average: [41, 37, 31]
single: [86, 22, 1] chainedExperimente você mesmo
import numpy as np
import pandas as pd
from sklearn.cluster import AgglomerativeClustering
# Onde crescem 109 pés de morango silvestre em um campo (metros): três agrupamentos e um caminho
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"]
# Escreva seu código abaixo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Aprendizado não supervisionado
1Encontrando Grupos
Aprendendo sem RótulosMedindo a SimilaridadeK-Means à MãoK-Means no scikit-learnRevisão: Frequentadores da Academia4Clustering Hierárquico
Mesclando passo a passoModelos aglomerativosDendrogramasRevisão: raças de cães7PCA na prática
Visualizando 64 dimensõesComponentes como padrõesComprimir e reconstruirPCA antes de um modeloRecapitulação: scanner facial10Projeto: Explorando os Dígitos
Observe os DígitosReduza com PCAAgrupe os DígitosDê Nome aos GruposEncontre os Diferentes2Escolhendo k
InérciaO método do cotoveloPontuações de silhuetaEscale antes de agruparRecapitulando: zonas de entregaPratique por conta própria: Compilador de Python online