Наверное вопрос не по теме, но если кто реализовывал сабж, то
подскажите.
Проблема очень простая:
В алгоритме есть шаг на котором вычисляются расстояния между элементами
и центрами кластеров.
Так вот при вычислении этих расстояний нужно считать определитель
и обратную матрицу для ковариационной матрицы (считается на
предыдущих шагах).
Это расстояние называется взвешенным расстоянием Махаланобиса.
Вопрос вот в чём:
Ведь не у каждой квадратной матрицы есть обратная!!!
Что делать в этом случае???
Я нигде не смог найти информации об этом, а ведь такую матрицу мы
получим если в наборе входных данных (векторов) один из атрибутов
(координат) будет одинаковым для всех данных!
P.S.
Эта проблема есть только в алгоритме кластеризации по Г-К.
В fuzzy C-means например всё проще - там матрица всегда единичная.
Но fuzzy C-means строит сферы, что слишком огрубляет результаты.
А ГК строит эллипсойды!