Код Middle Кластеризация и снижение размерности обновлено
k-means на списках
Условие
Напишите kmeans(points, centers, iters): алгоритм Ллойда с заданными начальными центрами. На каждой итерации назначьте каждую точку ближайшему центру (при равенстве расстояний центру с меньшим индексом) и пересчитайте центры как средние; пустой кластер сохраняет старый центр. Остановитесь после iters итераций или раньше, если назначения не изменились. Верните [centers, labels], координаты центров округлите до 4 знаков.
Примеры
kmeans([[1], [2], [3], [10], [11]], [[2], [9]], 10) // [[[2], [10.5]], [0, 0, 0, 1, 1]]
kmeans([[0, 0], [0, 1], [5, 5], [5, 6]], [[0, 0], [1, 1]], 10) // [[[0, 0.5], [5, 5.5]], [0, 0, 1, 1]]
kmeans([[1], [2], [3]], [[2], [100]], 5) // [[[2], [100]], [0, 0, 0]]
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Кластеризация и снижение размерности»
- Isolation Forest
- Особенность DBSCAN
- Методы снижения размерности
- Один шаг k-means
- Гауссова смесь (GMM)
- Иерархическая кластеризация
- Где k-means ошибается
- Как работает k-means