Разбить матрицу на кластеры с выделением точки характеризующей кластер

Цена договорная
14 апреля 2021, 16:12 • 0 откликов • 20 просмотров
Есть 10 точек (ABCDEFGHIJ) (точек может быть до нескольких тысяч). Есть матрица расстояний между точками, выраженная в коэффицентах (от 0 до 1) . Коэффицент 1 означает расстояние от точки до самой себя, чем ближе к 0 - тем расстояние от точки больше.
Ниже - коэффициенты расстояний между точками
[[1,0.69525564,0.7147385,0.7225469,0.7299277,0.7147385,0.7225469,0.7299277,0.68372977,0.7420604],[0.69525564,1,0.7663729,0.7995353,0.79774547,0.7663729,0.7995353,0.79774547,0.73523,0.74319994],[0.7147385,0.7663729,1,0.8683669,0.8551322,0.9767592,0.8683669,0.8551322,0.75508356,0.7531345],[0.7225469,0.7995353,0.8683669,1,0.8955167,0.8683669,0.96407676,0.8955167,0.7365647,0.73466814],[0.7299277,0.79774547,0.8551322,0.8955167,1,0.8551322,0.8955167,0.9735589,0.74496573,0.77002823],[0.7147385,0.7663729,0.9767592,0.8683669,0.8551322,1,0.8683669,0.8551322,0.75508356,0.7531345],[0.7225469,0.7995353,0.8683669,0.96407676,0.8955167,0.8683669,1,0.8955167,0.7365647,0.73466814],[0.7299277,0.79774547,0.8551322,0.8955167,0.9735589,0.8551322,0.8955167,1,0.74496573,0.77002823],[0.68372977,0.73523,0.75508356,0.7365647,0.74496573,0.75508356,0.7365647,0.74496573,1,0.75765276],[0.7420604,0.74319994,0.7531345,0.73466814,0.77002823,0.7531345,0.73466814,0.77002823,0.75765276,1]]

Необходимо матрицу
1) разбить на требуемое число кластеров (количество кластеров задается пользователем)
2) найти точку внутри кластера, характеризующую весь кластер. точка должна быть существующая.
3) Несколько запусков алгоритма должны давать один и тот же результат.

Сделали разбиение на кластеры методом "агломеративной кластеризации" с использованием "ближайшего соседа".
Есть проблема с вычислением точки внутри кластера.

В идеале написать скрипт на php. Либо решить на "бумаге" и указанием всех формул.