Центры в реальных единицах
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 12 из 51.
Центр кластера — это его типичный представитель. K-means нашёл центры парка развлечений в масштабированных данных, поэтому они выражены в виде z-оценок. Те же центры до и после:
Сохрани масштабатор: он запоминает среднее значение и разброс каждого признака, а inverse_transform отменяет масштабирование:
scaler = StandardScaler()
km.fit(scaler.fit_transform(park))
centers = scaler.inverse_transform(km.cluster_centers_)
print(centers.round(1))Здесь выводятся часы, поездки и возраст, по одной строке на кластер:
[[ 6. 6.2 38.4]
[ 2.4 3. 45.8]
[ 6.8 13.9 20.7]]Центр кластера 2 был равен 0.8 и 1.3. Теперь это 6.8 часа и 13.9 поездки: та же точка, но в единицах, понятных человеку.
Задание
СреднеПроизводитель перчаток преобразует кластеры рук в 4 размера перчаток. В начальном коде масштабируются 150 рук, они объединяются в кластеры, а рука клиента считывается в new_hand.
- Найди кластер, к которому присоединится новая рука: сначала масштабируй её.
- Преобразуй центры обратно в см.
- Выведи центр этого кластера с точностью до 1 десятичного знака, как показано ниже.
Для другого производителя перчаток:
Your glove size: hand 20.3 cm, palm 8.9 cm, finger 8.6 cmПопробуйте сами
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
# 150 рук, измеренных изготовителем перчаток, в см: длина кисти, ширина ладони, длина среднего пальца
hands = pd.read_csv("hands.csv")
scaler = StandardScaler()
scaled = scaler.fit_transform(hands)
# По одному кластеру на каждый размер перчаток
km = KMeans(n_clusters=4, n_init=10, random_state=0)
km.fit(scaled)
# Кисть нового клиента в виде таблицы с одной строкой и теми же столбцами
new_hand = pd.DataFrame({
"hand_cm": [float(input())],
"palm_cm": [float(input())],
"finger_cm": [float(input())],
})
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставки3Анализ кластеров
Профилирование кластеровЦентры в реальных единицахКластеры и известные меткиКогда K-Means не справляетсяПовторение: дегустация чаяПотренируйтесь самостоятельно: Онлайн-компилятор Python