Выбор eps
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 22 из 51.
eps — это предположение, пока ты не посмотришь. Для парка из упражнения Noise Points измерь расстояние от каждой точки до её 4-го ближайшего соседа, считая саму точку, как при min_samples=4. Отсортируй и построй график:
Скопления точек располагаются низко и плоско; одиночные точки резко поднимаются вверх. Колено, где кривая поворачивает вверх, — хороший вариант для eps:
from sklearn.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors=4).fit(X)
distances, rows = nn.kneighbors(X)
ax.plot(np.sort(distances[:, -1]))kneighbors возвращает расстояния от каждой точки до 4 ближайших соседей в порядке от ближайшего, поэтому столбец -1 — это 4-й сосед. np.sort упорядочивает их.
Задание
СреднеСейсмологи хотят, чтобы DBSCAN нашёл линии разломов за год землетрясений, используя min_samples=5. Выбери значение eps.
- Обучи
NearestNeighbors(n_neighbors=5)наXи получи расстояния для каждого землетрясения. - Построй график расстояний до 5-го ближайшего соседа, отсортированных по возрастанию.
- Запусти код и найди колено графика. Сохрани это значение в
eps, проведи на графике пунктирную серую линию с помощьюax.axhlineи покажи график.
Для другого региона колено находилось примерно на 4 км:
Coddy опишет твой график, а затем запустит DBSCAN с выбранным тобой значением eps.
Попробуйте сами
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import NearestNeighbors
# Землетрясения за год в одном регионе: координаты каждого эпицентра в км
quakes = pd.read_csv("quakes.csv")
X = np.column_stack([quakes["east_km"], quakes["north_km"]])
fig, ax = plt.subplots()
ax.set_title("Distance to the 5th Nearest Quake")
ax.set_xlabel("Quakes, sorted")
ax.set_ylabel("Distance (km)")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставкиПотренируйтесь самостоятельно: Онлайн-компилятор Python