Я использую кластеризацию k-средних со случайной инициализацией для идентификации кластеров. Алгоритм хорошо работает для хороших данных. Но если я работаю с данными с большим количеством шумов, то мой алгоритм k-средних теряет устойчивость и дает разные решения для каждого запуска одного и того же набора данных.
Поэтому я решил улучшить свою кластеризацию k-средних, чтобы минимизировать критерий Уорда:
Я написал этот алгоритм на с ++ Вот. Однако проблема в том, что этот подход чрезвычайно медленный, я имею дело с кластерами с примерно 20 000 точек на каждый.
Можете ли вы предложить мне лучшее решение, или вы могли бы помочь мне ускорить этот алгоритм?
Я наконец нашел решение. Я понял, что:
Что определенно помогло мне Средняя нормализация. Я сделал 5x k-средних, рассчитанное среднее для центров кластеров от каждой итерации. И, наконец, запустите k-средних с вычисленными средствами в качестве начального решения.