Назад к вопросам
JuniorТеорияЧасто
Что выведет эта программа?
import numpy as np
X = np.array([[0], [1], [3], [4], [11]])
centroids = np.array([[0.0], [5.0]])
dist = np.array([((X - c) ** 2).sum(axis=1) for c in centroids])
labels = dist.argmin(axis=0)
new = np.array([X[labels == j].mean(axis=0) for j in range(2)])
print(new[0, 0], new[1, 0])0.5 6.0
- Ждать
0.5 4.0: центроид сдвигается в среднее своих точек3,4и11, то есть в6.0;4.0— их медиана. - Ждать, что центроиды сдвинутся только часть пути: один шаг k-means ставит центроид ровно в среднее его точек, размера шага у него нет.
- К какому центроиду отошла бы точка
3, если бы второй центроид стартовал в7.0, а не в5.0? - Что делать на шаге обновления, если к центроиду не приписана ни одна точка?