Elegir eps
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 22 de 51.
eps es una suposición hasta que observes los datos. Para el parque de Noise Points, mide la distancia de cada punto a su 4.º vecino más cercano, contándose a sí mismo, como en min_samples=4. Ordena y representa los datos:
Los puntos agrupados se mantienen bajos y planos; los puntos aislados se disparan hacia arriba. La rodilla, donde la curva empieza a subir, es un buen eps:
from sklearn.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors=4).fit(X)
distances, rows = nn.kneighbors(X)
ax.plot(np.sort(distances[:, -1]))kneighbors da las distancias de cada punto a sus 4 vecinos más cercanos, empezando por el más cercano, así que la columna -1 corresponde al 4.º. np.sort los ordena.
Desafío
IntermedioLos sismólogos quieren que DBSCAN encuentre las líneas de falla bajo un año de terremotos, con min_samples=5. Elige su eps.
- Ajusta
NearestNeighbors(n_neighbors=5)aXy obtén las distancias de cada terremoto. - Representa gráficamente las distancias al quinto vecino más cercano, ordenadas.
- Ejecútalo y observa el punto de inflexión. Guarda ese valor en
eps, dibújalo como una línea gris discontinua conax.axhliney muestra el gráfico.
En otra región, el punto de inflexión estaba cerca de 4 km:
Coddy describe tu gráfico y luego ejecuta DBSCAN con tu eps.
Pruébalo tú mismo
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import NearestNeighbors
# Un año de terremotos en una región: cada epicentro en km
quakes = pd.read_csv("quakes.csv")
X = np.column_stack([quakes["east_km"], quakes["north_km"]])
fig, ax = plt.subplots()
ax.set_title("Distance to the 5th Nearest Quake")
ax.set_xlabel("Quakes, sorted")
ax.set_ylabel("Distance (km)")
# 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