Метод k-средних в OpenCV

k-means (метод k-средних) – алгоритм кластеризации. Суть в том, что в группе данных найти скопления («кластеры»). Пользователь устанавливает количество кластеров, а алгоритм находит лучшие места для них.
Алгоритм работает следующим образом.
1. Входные данные: (а) набор данных; (б) количество кластеров.
2. Случайно назначаем позиции кластеров.
3. Связываем каждую точку данных с ближайшим центром.
4. Перемещение центра кластера в позицию «центра тяжести».
5. Возврат к шагу 3 до тех пор, пока на шаге 4 не будет изменений.
Не смотря на то, что данный алгоритм является эффективным, у него есть три проблемы:
1. Не гарантируется, что найдется оптимальное местоположение кластеров, однако гарантируется сходимость алгоритма (нет бесконечного движения центров).
2. Метод k-средних не скажет нам, какое оптимальное количество кластеров – их необходимо устанавливать самостоятельно.
3. Метод k-средних предполагает, что ковариация в пространстве или не имеет значения, или данные уже нормализованы.

( Читать дальше )