Cuándo falla K-Means
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 14 de 51.
K-means representa cada clúster como una bola redonda alrededor de su centro. Los dardos forman una diana con un anillo alrededor, y k-means los divide por la mitad:
Cada punto se une al centro más cercano, por lo que el límite entre dos grupos es una línea recta a mitad de camino entre los centros. Ninguna línea recta separa un anillo de su parte central.
Los grupos alargados, curvos o muy irregulares hacen que k-means falle de la misma manera. Aun así, devuelve clústeres, así que fíjate siempre en la imagen.
Desafío
IntermedioUn dron detectó 200 focas en dos bancos de arena curvos. El código inicial muestra la realidad en el panel left.
- Agrupa las focas con k-means, k = 2.
- En el panel
right, crea un gráfico de dispersión para cada grupo, etiquetado comocluster 0ocluster 1. - Marca los centros con marcadores negros
"X"etiquetados comocenters. Añade una leyenda y después muestra el gráfico.
Coddy describe tu gráfico y cuenta las focas que quedaron en su propio banco de arena. Como en este caso, con dos grupos:
Pruébalo tú mismo
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.cluster import KMeans
# 200 focas descansando en dos bancos de arena curvos, vistas desde un dron (posiciones en 100 m)
X, sandbar = make_moons(n_samples=200, noise=0.07, random_state=4)
# Dibuja los bancos de arena reales en 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")
# 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