Menu
CoddyTech

Repaso: zonas de entrega

Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 10 de 51.

challenge icon

Desafío

Fácil

¿Recuerdas el mapa de zonas que abrió este capítulo? Ahora dibuja el tuyo. La furgoneta de una panadería atiende 150 paradas, y stops.csv almacena el este en km, pero el norte en metros.

  1. Escala ambas columnas.
  2. Para k de 2 a 7, ajusta KMeans a las filas escaladas; imprime su inercia (1 decimal) y su silueta (3 decimales). Después, imprime el k con la mejor silueta.
  3. Representa las zonas de ese k en unidades reales: las paradas de cada zona etiquetadas con su cantidad, como 50 stops, una estrella negra en la media de cada zona y una leyenda.

Para otra ciudad:

k = 2: inertia 109.5, silhouette 0.535
k = 3: inertia 22.8, silhouette 0.737
k = 4: inertia 18.3, silhouette 0.597
k = 5: inertia 14.5, silhouette 0.443
k = 6: inertia 12.7, silhouette 0.368
k = 7: inertia 11.2, silhouette 0.364
Zones: 3

y su mapa:

Un mapa titulado Delivery Zones, con el este en km en el eje horizontal y el norte en metros en el eje vertical: tres zonas de paradas, 45 en la parte inferior izquierda, 40 en la parte superior derecha y 25 en la parte inferior derecha, cada una con una estrella negra en el centro y una leyenda que identifica cada zona por su número de paradas

Después, Coddy describe tu mapa.

Pruébalo tú mismo

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score

# Una fila por parada de entrega: coordenada este en km, coordenada norte en metros (la unidad del sistema antiguo)
stops = pd.read_csv("stops.csv")
X = stops[["east_km", "north_m"]]

fig, ax = plt.subplots()
ax.set_title("Delivery Zones")
ax.set_xlabel("East (km)")
ax.set_ylabel("North (m)")

# Escribe tu código a continuación

Todas las lecciones de Aprendizaje no supervisado

Practica por tu cuenta: Compilador de Python online