Dê Nome aos Grupos
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 46 de 51.
Os clusters vêm com números, não nomes. Agora você pode usar os rótulos: uma tabela cruzada conta quais dígitos caíram em cada cluster, como estes 1s, 7s e 9s em 3 clusters:
Nomeie cada grupo com seu dígito mais comum. As varreduras desse dígito contam como identificadas corretamente:
ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1) # a coluna com o maior valor de cada linha
right = ct.max(axis=1).sum()
print(names.tolist(), right)Isso imprime [9, 7, 1] 496: 496 das 541 varreduras foram nomeadas à direita, por grupos encontrados sem um único rótulo.
Desafio
MédioDê nomes aos seus 10 clusters. O código inicial traz km, ajustado sem rótulos; agora você pode usar os dígitos em y.
- Faça uma tabulação cruzada dos clusters com
ye dê a cada cluster o nome do dígito mais comum nele. - Na ordem dos nomes, imprima as digitalizações de cada cluster nomeadas corretamente, seu tamanho e sua proporção de acertos, como porcentagem inteira.
- Imprima o total de digitalizações nomeadas corretamente e a porcentagem com 1 casa decimal.
Para 5 clusters:
Cluster named 0: 175 of 177 scans (99%)
Cluster named 2: 160 of 367 scans (44%)
Cluster named 3: 168 of 531 scans (32%)
Cluster named 6: 179 of 359 scans (50%)
Cluster named 7: 176 of 363 scans (48%)
Named right without labels: 858 of 1797 scans (47.7%)Qual dos seus clusters é o mais fraco e o que há nele?
Experimente você mesmo
import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# De Observe os Dígitos: 1,797 imagens de 64 pixels, intensidade da tinta de 0 a 16
digits = load_digits()
X = digits.data
y = digits.target
# De Reduza com PCA: 80% da variância em 13 números por imagem
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)
# De Agrupe os Dígitos: 10 grupos, encontrados sem rótulos
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)
# 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