Cúmulos de estrellas
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 50 de 51.
Un club de astronomía fotografió una zona del cielo. Algunas de sus 225 estrellas pertenecen al mismo grupo, nacidas en la misma nube; las demás son desconocidas que están delante o detrás:
Ambas posiciones están en minutos de arco, una unidad, así que eps es una distancia en la foto.
El club quiere cada grupo y su tamaño, dejando fuera a las estrellas solitarias del campo. ¿Le iría igual de bien a k-means?
Desafío
DifícilEl programa lee eps; el código inicial configura dos mapas, left y right.
- Ejecuta DBSCAN con ese eps y
min_samples=5en las dos posiciones. Imprime sus clústeres y las estrellas de campo (etiqueta -1). - Ajusta k-means con tantos clústeres (
n_init=10,random_state=0). Imprime el clúster más grande y el más pequeño de cada método. - En
left, representa los clústeres de DBSCAN, concluster 1como el más grande, después lasfield starsen gris. Enright, representa los clústeres de k-means, numerados de la misma manera. Muestra las leyendas.
Para otra foto y eps 2.5:
DBSCAN: 3 clusters and 29 field stars
Biggest cluster: 63 stars by DBSCAN, 77 by k-means
Smallest cluster: 41 stars by DBSCAN, 48 by k-meansy sus mapas:
Después, Coddy describe el tuyo. ¿En qué método confiarías para identificar las estrellas de campo?
Pruébalo tú mismo
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN, KMeans
# Una fila por cada estrella de la foto: posición (minutos de arco) y brillo (magnitud)
field = pd.read_csv("field.csv")
eps = float(input())
# Dos mapas uno al lado del otro: DBSCAN a la izquierda, k-means a la derecha
fig, axs = plt.subplots(1, 2, figsize=(10, 4))
left = axs[0]
right = axs[1]
left.set_title("DBSCAN")
right.set_title("k-means")
for ax in axs:
ax.set_xlabel("x (arcmin)")
ax.set_ylabel("y (arcmin)")
# 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 entrega8Detección de anomalías
Encontrar los casos atípicosIsolation ForestLocal Outlier FactorPuntuaciones de anomalíaRepaso: vigilancia del servidor11Desafíos finales
Segmentos de comprasVigilancia del fraude con tarjetasCúmulos de estrellasDos tipos de células3Interpretació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