Menu
CoddyTech

Puntos de ruido

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

No todos los puntos se unen a una multitud. DBSCAN etiqueta esos puntos como -1: ruido. En un parque, los picnics son multitudes y las personas sentadas solas son ruido:

Un mapa de un parque con cuatro picnics como grupos compactos de puntos de colores, de tamaños 16, 12, 20 y 14, y nueve personas solas representadas con marcas x grises dispersas entre ellos

Cuenta ambos:

labels = DBSCAN(eps=3, min_samples=4).fit_predict(X)
print((labels == -1).sum())
print(labels.max() + 1)

Esto imprime 9 y 4. El ruido es -1, así que la etiqueta más grande sigue contando las multitudes.

El ruido no es un fallo. A menudo, los puntos aislados cuentan la historia: un excursionista fuera del sendero, una lectura distinta de las demás.

challenge icon

Desafío

Intermedio

Los renos llevan collares GPS. Las manadas son grupos; un reno que está solo puede haberse perdido o estar herido, así que el pastor visita primero a esos renos. El código inicial ejecuta DBSCAN con min_samples leído de la entrada.

  1. Imprime cuántas manadas hay.
  2. Imprime cuántos renos están solos.
  3. Imprime sus identificadores como una lista para comprobar cómo están.

Para los collares de otro pastor:

Herds: 2
Lone reindeer: 3
Check on: ['R011', 'R027', 'R040']

Prueba con un valor mayor de min_samples: una regla de agrupamiento más estricta deja a más renos solos.

Pruébalo tú mismo

import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN

# Collares GPS al amanecer: identificador y posición de cada reno en km
reindeer = pd.read_csv("reindeer.csv")
X = np.column_stack([reindeer["east_km"], reindeer["north_km"]])
min_samples = int(input())
labels = DBSCAN(eps=0.6, min_samples=min_samples).fit_predict(X)

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje no supervisado

Practica por tu cuenta: Compilador de Python online