Инерция
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 6 из 51.
Эта глава посвящена выбору k. К концу главы ты выберешь его для доставок пекарни и нанесёшь зоны на карту:
Сначала рассмотрим оценку. Inertia суммирует квадраты расстояний от каждой точки до её центра: значение небольшое, когда точки близко к своим центрам.
KMeans хранит это в inertia_. Для 180 яблок:
for k in [1, 2, 3, 4]:
km = KMeans(n_clusters=k, n_init=10, random_state=0)
km.fit(X)
print(k, round(km.inertia_))Это выводит:
1 1718
2 752
3 230
4 196Больше центров, короче спицы: inertia всегда уменьшается с ростом k. Если для каждой точки есть свой центр, она равна 0, поэтому наименьшее значение — не лучший вариант.
Задание
ЛегкоГончарная мастерская упаковывает вазы в коробки нескольких размеров. Для каждой вазы выбирают ближайший размер; инерция показывает, насколько плохо они подходят. Программа считывает budget — максимально допустимое несоответствие.
- Пробуйте k = 1, 2, 3 и так далее: обучайте KMeans на
vasesи выводите инерцию для каждого k, округлив её. - Остановитесь на первом k, для которого инерция укладывается в бюджет, и выведите его.
Для другой гончарной мастерской:
k = 1, inertia 15120
k = 2, inertia 4811
k = 3, inertia 1290
Box sizes needed: 3Попробуйте сами
import numpy as np
from sklearn.cluster import KMeans
# Не меняйте строки ниже
rng = np.random.default_rng(8)
# Четыре вида ваз: типичные высота и ширина в см, а также количество каждого вида
kinds = [(15, 8, 25), (38, 13, 25), (22, 22, 20), (58, 26, 10)]
parts = []
for h, w, n in kinds:
parts.append(np.column_stack([rng.normal(h, 2.5, n), rng.normal(w, 2, n)]))
# 80 ваз, по одной в каждой строке: высота и ширина в см
vases = np.round(np.concatenate(parts), 1)
# Максимальная допустимая для гончарной мастерской неоднородность, выраженная через инерцию
budget = int(input())
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставкиПотренируйтесь самостоятельно: Онлайн-компилятор Python