Друзья!
Возникла задача кластеризации многомерных данных. Сложность в том, что известно, что внутри кластеров дисперсии признаков разные, признаки скоррелированы, причем корреляционные матрицы разных кластеров различаются. Сами дисперсии и корреляционные матрицы заранее неизвестны. Т.е. заранее назначить сколь-нибудь разумную метрику невозможно. Пытаюсь приспособить к решению задачи метод разделения смеси распределений ЕМ-алгоритмом. Однако в чистом виде ЕМ-алгоритм "неустойчив по начальным данным". Посему решил попробовать SЕM-модификацию, тем более, что она позволяет определить количество кластеров. Но при реализации возник вопрос - каков критерий останова? При каком условии можно принять, что алгоритм пошел по марковскому процессу? Ведь, если я правильно понял, то SEM-алгоритм не сходится в точке, а выходит на марковскую цепочку. К сожалению, в доступной мне литературе вопрос критерия останова SEM-алгоритма никак не освещен. Реализаций в открытом коде я тоже не нашел. Не мог бы кто-нибудь подсказать путь решения задачки?
|