Alterna · учебный материал
06.5 Группы без готовых правильных ответов
Попробуем распределить точки по ближайшим центрам и пересчитать центры как средние координаты. Это поиск групп, а не обучение по меткам.
Что в этом материале
- Назначить центры, затем пересчитать их
Содержание и основные понятия
На предыдущей странице: как сравнивать ошибки разных типов.
Попробуем распределить точки по ближайшим центрам и пересчитать центры как средние координаты. Это поиск групп, а не обучение по меткам.
Подбор прямой и разделение точек позволяют увидеть процесс обучения на простых данных. Проверочные ответы не участвуют в исправлениях.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Назначить центры, затем пересчитать их
K-means получает только векторы признаков и число кластеровK. Он минимизирует сумму квадратов расстояний до выбранных centroids. IDs кластеров не известные семантические классы. N04.
J
=
∑
i
∥
x
i
−
μ
c
i
∥
2
2
,
c
i
=
arg
min
k
∥
x
i
−
μ
k
∥
2
2
,
μ
k
=
1
n
k
∑
i
:
c
i
=
k
x
i
.
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.
J
=
i
∑
∥
x
i
−
μ
c
i
∥
2
2
,
c
i
=
ar
g
k
min
∥
x
i
−
μ
k
∥
2
2
,
μ
k
=
n
k
1
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
Академическая база →