Вы можете превратить свою матрицу расстояний в необработанные данные и ввести их в кластеризацию K-Means. Шаги будут следующими:
1) Расстояния между вашими N точками должны быть квадратами евклидова. Выполните « двойное центрирование » матрицы: вычтите среднее значение строки для каждого элемента; в результате столбец вычитания означает от каждого элемента; в результате добавьте среднее значение матрицы для каждого элемента; разделите на минус 2. Теперь у вас есть матрица SSCP (сумма квадратов и кросс-произведение) между вашими точками, в которой начало координат находится в геометрическом центре облака из N точек. (Прочитайте объяснение двойного центрирования здесь .)
2) Выполнить PCA (анализ главных компонентов) на этой матрице и получить матрицу загрузки компонентов NxN . Некоторые из последних столбцов могут быть равны 0, поэтому обрежьте их. То, с чем вы остаетесь сейчас, это на самом деле оценки главных компонентов, координаты ваших N точек на главных компонентах, которые проходят в виде осей через ваше облако. Эти данные могут рассматриваться как необработанные данные, подходящие для ввода K-средних.
PS Если ваши расстояния не являются геометрически правильными квадратами евклидова, вы можете столкнуться с проблемой: матрица SSCP может быть не положительной (полу) определенной. С этой проблемой можно справиться несколькими способами, но с потерей точности.