Quando o K-Means falha
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 14 de 51.
O k-means representa cada cluster como uma mancha redonda ao redor de seu centro. Os dardos formam um alvo com um anel ao redor, e o k-means os divide ao meio:
Cada ponto se junta ao centro mais próximo, então a fronteira entre dois agrupamentos é uma linha reta no meio do caminho entre os centros. Nenhuma linha reta separa um anel de seu centro.
Grupos longos, curvos ou muito irregulares comprometem o k-means da mesma forma. Ele ainda retorna clusters, então sempre observe a imagem.
Desafio
MédioUm drone avistou 200 focas em dois bancos de areia curvos. O código inicial mostra a verdade no painel left.
- Agrupe as focas com k-means, k = 2.
- No painel
right, faça um gráfico de dispersão para cada agrupamento, identificado comocluster 0oucluster 1. - Marque os centros com marcadores pretos
"X", identificados comocenters. Adicione uma legenda e, em seguida, mostre o gráfico.
O Coddy descreve seu gráfico e conta quantas focas ficaram com seu próprio banco de areia. Assim, para dois grupos:
Experimente você mesmo
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.cluster import KMeans
# 200 focas descansando em dois bancos de areia curvos, vistas por um drone (posições em 100 m)
X, sandbar = make_moons(n_samples=200, noise=0.07, random_state=4)
# Desenha os bancos de areia reais em ax
def draw_truth(ax):
ax.scatter(X[sandbar == 0, 0], X[sandbar == 0, 1], s=12, label="north bar")
ax.scatter(X[sandbar == 1, 0], X[sandbar == 1, 1], s=12, label="south bar")
ax.set_title("The truth")
ax.legend()
fig, (left, right) = plt.subplots(1, 2, figsize=(9, 4))
draw_truth(left)
right.set_title("K-means, k = 2")
# 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 entrega3Interpretando agrupamentos
Caracterizando agrupamentosCentros em unidades reaisAgrupamentos versus rótulos conhecidosQuando o K-Means falhaRevisão: degustação de cháPratique por conta própria: Compilador de Python online