Звёздные скопления
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 50 из 51.
Астрономический клуб сфотографировал участок неба. Некоторые из 225 звёзд связаны между собой: они родились в одном облаке; остальные — посторонние, находящиеся перед ним или за ним:
Обе позиции указаны в угловых минутах — это одна единица измерения, поэтому eps — это расстояние на фотографии.
Клубу нужны кластеры и их размеры, без одиноких звёзд на поле. Справится ли с этим так же хорошо k-means?
Задание
СложноПрограмма считывает eps; в стартовом коде создаются два графика: left и right.
- Запусти DBSCAN с этим eps и
min_samples=5для двух координат. Выведи кластеры и звёзды поля (метка -1). - Обучи модель k-средних с таким же количеством кластеров (
n_init=10,random_state=0). Выведи самый большой и самый маленький кластер для каждого метода. - На
leftизобрази кластеры DBSCAN, начиная с самого большого —cluster 1, а затемfield starsсерым цветом. Наrightизобрази кластеры k-средних, пронумерованные так же. Покажи легенды.
Для другой фотографии и eps 2.5:
DBSCAN: 3 clusters and 29 field stars
Biggest cluster: 63 stars by DBSCAN, 77 by k-means
Smallest cluster: 41 stars by DBSCAN, 48 by k-meansи её графики:
Затем Coddy опишет твой результат. Какому методу ты бы доверил работу со звёздами поля?
Попробуйте сами
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN, KMeans
# По одной строке для каждой звезды на снимке: положение (в угловых минутах) и яркость (в звёздных величинах)
field = pd.read_csv("field.csv")
eps = float(input())
# Две карты рядом: DBSCAN слева, k-means справа
fig, axs = plt.subplots(1, 2, figsize=(10, 4))
left = axs[0]
right = axs[1]
left.set_title("DBSCAN")
right.set_title("k-means")
for ax in axs:
ax.set_xlabel("x (arcmin)")
ax.set_ylabel("y (arcmin)")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставкиПотренируйтесь самостоятельно: Онлайн-компилятор Python