Menu
CoddyTech

Punkty szumu

Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 21 z 51.

Nie każdy punkt dołącza do tłumu. DBSCAN oznacza takie punkty jako -1: szum. W parku pikniki tworzą tłumy, a osoby siedzące samotnie to szum:

Mapa parku z czterema piknikami w postaci zwartych grup kolorowych kropek o rozmiarach 16, 12, 20 i 14 oraz dziewięcioma samotnymi osobami oznaczonymi szarymi znakami x rozrzuconymi między nimi

Policz oba:

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

To wypisuje 9 i 4. Szum to -1, więc największa etykieta nadal obejmuje tłumy.

Szum nie oznacza porażki. Często to właśnie pojedyncze punkty opowiadają historię: wędrowiec poza szlakiem, odczyt różniący się od pozostałych.

challenge icon

Wyzwanie

Średni

Renifery noszą obroże GPS. Stada to grupy; renifer, który jest sam, może być zagubiony lub ranny, więc pasterz odwiedza najpierw te renifery. Kod początkowy uruchamia DBSCAN z wartością min_samples odczytaną z danych wejściowych.

  1. Wyświetl, ile jest stad.
  2. Wyświetl, ile reniferów jest samotnych.
  3. Wyświetl ich znaczniki w postaci listy, aby je sprawdzić.

Dla obroży innego pasterza:

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

Spróbuj zwiększyć wartość min_samples: bardziej rygorystyczna zasada tworzenia grup sprawia, że więcej reniferów zostaje samotnych.

Spróbuj swoich sił

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

# Obroże GPS o świcie: identyfikator każdego renifera i jego położenie w 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)

# Wpisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Uczenie nienadzorowane

Poćwicz samodzielnie: Kompilator Python online