Menu
CoddyTech

Шумовые точки

Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 21 из 51.

Не каждая точка присоединяется к группе. DBSCAN помечает такие точки как -1: шум. В парке пикники — это группы, а люди, сидящие в одиночестве, — шум:

Карта парка с четырьмя пикниками в виде плотных групп цветных точек размером 16, 12, 20 и 14, а также девятью людьми в одиночестве, обозначенными серыми крестиками, разбросанными между ними

Подсчитайте оба значения:

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

Это выводит 9 и 4. Шум обозначается как -1, поэтому наибольшая метка по-прежнему учитывает толпы.

Шум — это не ошибка. Часто именно одиночные точки рассказывают историю: турист, сошедший с тропы, показание, отличающееся от остальных.

challenge icon

Задание

Средне

У северных оленей есть GPS-ошейники. Стада — это группы животных; олень, оставшийся один, может потеряться или пострадать, поэтому пастух сначала навещает таких оленей. Стартовый код запускает DBSCAN со значением min_samples, считанным из ввода.

  1. Выведите количество стад.
  2. Выведите количество оленей, оставшихся в одиночестве.
  3. Выведите их метки списком, чтобы проверить, как они.

Для ошейников другого пастуха:

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

Попробуйте увеличить min_samples: более строгое правило для группы оставляет в одиночестве больше оленей.

Попробуйте сами

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

# GPS-ошейники на рассвете: метка каждого северного оленя и его координаты в км
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)

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Обучение без учителя

Потренируйтесь самостоятельно: Онлайн-компилятор Python