Или алгоритм, который может оценить
"совершенство" кластеризации также
на основе матрицы расстояний?
KNN должен быть полезен при оценке «качества» кластерного задания. Вот как это сделать:
Учитывая матрицу расстояний, каждая точка которой помечена в соответствии с кластером, которому она принадлежит («метка кластера»):
- Проверка метки кластера каждой точки по отношению к меткам кластера, подразумеваемым из классификации k-ближайших соседей
- Если k-ближайшие соседи подразумевают альтернативный кластер, эта классифицированная точка понижает общий рейтинг «благости» кластера
- Суммируйте вклады "рейтинга добродетели" каждого из ваших пикселей, чтобы получить общую "оценку добродетели" для всего кластера
В отличие от кластерного анализа k-средних, ваш алгоритм будет возвращать информацию о плохо классифицированных точках. Вы можете использовать эту информацию для переназначения определенных точек новому кластеру, тем самым улучшая общее "качество" вашей кластеризации.
Поскольку алгоритм ничего не знает о расположении центроидов кластеров и, следовательно, ничего о глобальной плотности кластеров, единственный способ обеспечить кластеры, которые являются как локальными, так и глобально плотными, состоит в том, чтобы запустить алгоритм для диапазона значения k и нахождение схемы, которая максимизирует доброту в диапазоне значений k.
Для значительного количества очков вам, вероятно, потребуется оптимизировать этот алгоритм; возможно, с помощью хеш-таблицы для отслеживания ближайших точек относительно каждой точки. В противном случае для вычисления этого алгоритма потребуется некоторое время.