Menu
CoddyTech

Punti di rumore

Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 21 di 51.

Non tutti i punti si uniscono a una folla. DBSCAN etichetta quei punti con -1: rumore. In un parco, i picnic sono folle e le persone sedute da sole sono rumore:

Una mappa di un parco con quattro picnic come gruppi compatti di punti colorati, di dimensioni 16, 12, 20 e 14, e nove persone da sole rappresentate da segni x grigi sparsi tra loro

Conta entrambi:

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

Questo stampa 9 e 4. Il rumore è -1, quindi l'etichetta più grande continua a contare i gruppi.

Il rumore non è un fallimento. Spesso i punti isolati raccontano la storia: un escursionista fuori dal sentiero, una lettura diversa dalle altre.

challenge icon

Sfida

Medio

Le renne portano collari GPS. I branchi sono gruppi; un renna da sola potrebbe essersi persa o essere ferita, quindi il pastore va prima da quelle. Il codice iniziale esegue DBSCAN con min_samples letto dall'input.

  1. Stampa quanti branchi ci sono.
  2. Stampa quanti renne sono sole.
  3. Stampa i loro tag in un elenco, per controllarli.

Per i collari di un altro pastore:

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

Prova un valore più grande di min_samples: una regola più rigorosa per i gruppi lascia più renne sole.

Provalo tu

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

# GPS collars at dawn: each reindeer's tag and position in 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)

# Write your code below
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento non supervisionato

Esercitati da solo: Compilatore Python online