Я думаю, вам лучше выделить свое использование (с точки зрения формы данных, количества элементов и априоров, которые вы можете знать о данных, прежде чем применять методы кластеризации). K-means - очень легкий и быстрый алгоритм, но с существенными недостатками:
- Инициализация: лучшие результаты получаются от случайных кластерных центроидов, так как сам алгоритм не содержит никакого правила "избежания локальных минимумов".
- Количество кластеров: вы должны заранее знать, сколько кластеров вы собираетесь отобразить на данные
- Нет зависимости от «формы» кластеров: цель K-средних состоит в том, чтобы сбалансировать размер разделов в пространстве, а в литературной реализации нет способа (почти) настроить поток с другими параметрами (статистика второго порядка, меры компактности и т. д.).
С другой стороны, SOM (или KSOM, как вы его называете) в основном используется для таксономий или для подразделений в пространствах с высокой степенью пригодности и может использовать преимущества более структурированных априоров, чем K-Means. Вы можете выбрать свою собственную функцию ядра, чтобы наложить ограничения на форму сети и многие другие передовые методы, которые должны заслуживать большего места для описания, чем просто пара строк. Недостаток: стадия обучения, не такая быстрая, как у K-Means, бесполезная в определенных областях (когда функция ядра плохо приближается к локальной дисперсии данных).
Надеюсь, это поможет вам.