alterna ai
ALTERNA AI / ГЛАВА 06 · 05

06.5 Группы без готовых правильных ответов

На предыдущей странице: как сравнивать ошибки разных типов.

Попробуем распределить точки по ближайшим центрам и пересчитать центры как средние координаты. Это поиск групп, а не обучение по меткам.

Подбор прямой и разделение точек позволяют увидеть процесс обучения на простых данных. Проверочные ответы не участвуют в исправлениях.

Назначить центры, затем пересчитать их

K-means получает только векторы признаков и число кластеровK. Он минимизирует сумму квадратов расстояний до выбранных centroids. IDs кластеров не известные семантические классы. N04.

J=∑i∥xi−μci∥22,ci=arg⁡min⁡k∥xi−μk∥22,μk=1nk∑i:ci=kxi.J=\sum_i\|x_i-\mu_{c_i}\|_2^2,\quad c_i=\arg\min_k\|x_i-\mu_k\|_2^2,\quad \mu_k=\frac1{n_k}\sum_{i:c_i=k}x_i.

При фиксированных центрах ближайший выбор минимизирует каждый вклад. При фиксированных assignments минимум поцентру получается из derivative2Σ(μ−x)=0: это арифметическое, не геометрическое среднее. Дляточек[0,0],[2,0] центр[1,0], inertia=1+1=2.

В лаборатории шестьточек, двацентра и конечная последовательность assignment/update. Ties выбирают меньшийиндекс. Если кластер пуст, его прежнийцентр сохраняется с пояснением; случайная переинициализация была бы другой политикой. После обновления labels пересчитываются для новых centres, чтобы показанное inertia не относилось к старой геометрии.

Исследовать. Сравните разнесённые и одинаковые initial centres. Почему первый tie-break может оставить одинкластер пустым? Почему нельзя интерпретировать номер0 как «плохой» класс? Уменьшение objective не гарантирует глобальный оптимум и содержательную полезность кластеризации. Масштаб признаков меняет расстояния и итог, поэтому preprocessing входит в метод.

points=[[0,0],[2,0]]
center=[sum(row[j] for row in points)/len(points) for j in range(2)]
inertia=sum(sum((a-b)**2 for a,b in zip(row,center)) for row in points)
assert center==[1,0] and inertia==2

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Производная суммы квадратов даёт среднее координат.

Какие направления данных важны для рисунка. Как этот вопрос продолжает полученный результат?

Python-примеры главы 06 Академическая база →