Escale antes de agrupar
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 9 de 51.
O K-means agrupa por distância, então as unidades maiores predominam. Gatos de abrigo por peso em gramas e idade em anos: uma diferença de 500 g se sobrepõe a uma de 10 anos.
Primeiro, padronize, como no k-NN, para que cada característica tenha o mesmo peso:
X_scaled = StandardScaler().fit_transform(X)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X_scaled)make_pipeline(StandardScaler(), KMeans(...)) faz as duas coisas em um único modelo. Depois, interprete cada grupo em unidades reais: calcule a média de suas linhas originais, X[km.labels_ == c].mean(axis=0).
Desafio
FácilUm aplicativo de busca de apartamentos agrupa 100 anúncios por aluguel e distância até a estação. O código inicial agrupa as colunas brutas, e todos os grupos ficam a cerca de 3 km de distância: os dólares abafam os quilômetros.
- Escale as duas colunas com um
StandardScaler. - Agrupe as linhas escaladas. Mantenha o relatório: ele apresenta cada grupo em unidades reais.
Para outra cidade:
38 flats: $1820 a month, 0.9 km out
33 flats: $1130 a month, 4.2 km out
29 flats: $2760 a month, 1.5 km outExperimente você mesmo
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# Uma linha por apartamento: aluguel mensal em dólares, distância até a estação em km
flats = pd.read_csv("flats.csv")
X = flats[["rent", "station_km"]]
# Isso agrupa as colunas sem padronização: corrija
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X)
# Apresente cada grupo em unidades reais, começando pelo maior
sizes = pd.Series(km.labels_).value_counts()
for c in sizes.index:
group = flats[km.labels_ == c]
print(f"{sizes[c]} flats: ${round(group['rent'].mean())} a month, {group['station_km'].mean():.1f} km out")
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