ней же ничего сделать нельзя.
Я просто почему спрашиваю, есть например такой метод кластеризации, названия k-means. Там вообще то надо просто промаркировать точки (присвоить каждый номер её кластера), так там почему-то излюбленный метод вычисления это как раз через вычисление матрицы попарных расстояний.
Но так как, нужны то только лейблы, вычисления матрицы можно пропустить. Мы это сделали и у нас получилось ускорение раз в 50.
Я как студент-физик со свободным временем делаю "черновую работу", а результаты уходят математикам. Это работы по реконструкции многомерного филогенетического облака гена Silva-16s рибосомальной РНК, дивергировавшего от единственного предка. Математики делают свою математику и получают срезы этого многомерного облака, хотя сейчас достоверно даже не известна размерность пространства, в котором это облако находится. Для части алгоритмов, действительно, достаточно 50-100 ближайших соседей каждой точки, но для некоторых (в частности, для поиска симплекса – т.е. набора точек, равноудалённых друг от друга – наименьшей достаточной размерности) кластеризация не подходит и требуется вся матрица целиком.
Есть алгоритм local minhash, который в таких задачах используется. Сильно редуцирует расчеты. Зачем считать расстояние в росте между слоном и муравьев, если они навскидку в разные группы входят. Зайца и волка надо — они близки. Была у меня похожая задачка по сравнению email-ов. 3.5 М на 3.5М. Так от бесконечности время расчета упало минут до 10 (алгоритм делал руками). На R, но либы по расчету расстояний нижние сишные, многопоточные.
Обсуждают сегодня