В предыдущем разделе мы изучили K-means. Но у этого алгоритма есть три большие проблемы. Давайте их разберём!
1) Нужно знать K
K-means требует, чтобы вы ЗАРАНЕЕ сказали ему, сколько кластеров вам нужно. Но часто мы этого не знаем!
Вопрос: Сколько групп на этой картинке?
• • • • • •
• • • • • •
• • • • • •
Ответ: 2 группы!
K-means: "Скажи мне k, и я найду k кластеров"
Вы: "Но я не знаю k! :("
2) Только круглые кластеры
K-means ищет только "выпуклые" (круглые) кластеры. Если кластер имеет форму полумесяца — K-means его разобьёт.
3) Чувствителен к выбросам
K-means ОБЯЗАН поместить каждую точку в кластер, даже если это одиночка далеко от всех. Выбросы портят результат.
K-means: "Выброс тоже должен быть в каком-то кластере!" → Центры кластеров СДВИГАЮТСЯ к выбросу → Кластеры искажаются

💡
Вывод: Нам нужен более умный алгоритм, который сам найдёт кластеры, не потребует K и сумеет найти кластеры любой формы!