Получить доступ

Как работает k-means и как выбрать число кластеров?

JuniorМодели машинного обученияscikit-learn
Ещё спрашивают так:
  • Какие алгоритмы кластеризации вы знаете?
Коротко

K-means итеративно: расставить k центров, отнести каждую точку к ближайшему центру, пересчитать центры как средние своих точек — повторять до стабилизации. Число k выбирают методом локтя, силуэтом и, главное, по смыслу задачи.

  • Чувствителен к масштабу признаков — масштабировать обязательно
  • Находит выпуклые кластеры примерно одного размера
  • Результат зависит от начальных центров — k-means++ и несколько запусков

А ещё DBSCAN находит кластеры произвольной формы и выбросы; иерархическая кластеризация даёт дерево

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Алгоритм:

  1. Выбрать k начальных центров (k-means++ — далеко друг от друга).
  2. Каждую точку отнести к ближайшему центру.
  3. Пересчитать центр каждого кластера как среднее его точек.
  4. Повторять шаги 2–3, пока назначения не перестанут меняться.

Минимизируется сумма квадратов расстояний от точек до их центров (inertia).

Выбор k:

  • метод локтя — график inertia от k, ищем излом;
  • коэффициент силуэта — насколько точка ближе к своему кластеру, чем к соседнему (от −1 до 1);
  • бизнес-смысл — пять сегментов клиентов маркетинг может использовать, пятьдесят — нет.

Ограничения и альтернативы:

  • кластеры вытянутой формы и разной плотности — DBSCAN или HDBSCAN;
  • нужны вероятности принадлежности — гауссовы смеси (GMM);
  • нужна иерархия — агломеративная кластеризация.

Что хотят услышать

  • Шаги алгоритма.
  • Способы выбора k.
  • Ограничения и альтернативы.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем