У меня есть квадратная матрица D
(в настоящее время представленная в виде массива фигур (572, 572)), вероятно, соответствующая парным расстояниям между точками вдоль поверхности приблизительно цилиндрического объекта.Т.е. значение D[i,j]
соответствует минимальной длине любого пути вдоль поверхности этого полого цилиндра.Как построить 3-мерное (или n-мерное) вложение этих 572 точек в евклидово пространство, которое сохраняет эти геодезические расстояния?
Текущие попытки
Алгоритмы, подобные локально линейное вложение и isomap способны взять эту матрицу попарных геодезических расстояний и вывести вложение так, чтобы попарные евклидовы расстояния были такими же, как и у исходных геодезических,Хотя в общем случае это не та же задача, в случае, когда выходные данные приближаются к гиперкубу в некотором измерении, на самом деле произошло желаемое преобразование (рассмотрим швейцарский рулон ), поскольку вложение само является многообразием,таким образом, евклидово расстояние соответствует геодезическому расстоянию.
Это не относится к даже более сложным объектам, таким как цилиндры.Обрабатывая геодезические расстояния как евклидово, антиподальные точки на желаемом цилиндре отображаются на места, расположенные значительно дальше друг от друга, чем хотелось бы, и соответствующая глобальная задача оптимизации часто приводит к разветвленной структуре с концами ветвей, соответствующими максимально удаленным антиподальным точкам,усиление малых возмущений при случайной выборке цилиндра.В общем, наивные применения этих алгоритмов, похоже, не решают проблему.
Другим несколько плодотворным (хотя и дорогостоящим) подходом была техника грубой monte carlo .Я генерирую случайные выборки из трубчатых объектов с переменными параметрами, пока не найду набор параметров, генерирующих геодезические матрицы расстояний, аналогичные моим, с точностью до перестановки (что решается не слишком неэффективно путем решения линейной системы преобразования этой матрицы расстояний в шахту и тестированиячтобы увидеть, если результат находится рядом с матрицей перестановок).Затем выполняется почти оптимальное отображение из моих 572 точек на этот объект, сохраняющее попарные расстояния, путем нахождения ближайшей матрицы перестановок к вышеупомянутой матрице почти перестановок.
Это дает правдоподобные результаты, но предполагает формуданные и это ужасно дорого.Я выполнил некоторые из наиболее очевидных оптимизаций, таких как работа с небольшими случайными выборками вместо всего набора данных и использование основанных на градиенте методов для оценки параметров, но было бы неплохо использовать более универсальную технику.
Предостережения
Эта проблема, конечно, не имеет единственного решения.Даже если предположить, что многообразия могут быть однозначно идентифицированы в трехмерном пространстве из конечной равномерной выборки, простое сжатие цилиндра дает форму с одинаковыми геодезическими и разными евклидовыми расстояниями (отсюда и другое вложение).Это не беспокоит меня больше, чем LLE и Isomap, приводящие к различным решениям, и я буду в порядке с любым правдоподобным ответом.
Что касается однозначной идентификации многообразий из конечной выборки, то для аргумента я будухорошо, просто используя атрибут dist_matrix_
из встроенного класса Isomap
из пакета scikit-learn
без каких-либо специальных параметров для поиска геодезических.Это выполняет ненужный шаг MDS
, но это не очень дорого, и это работает из коробки.Затем мы хотели бы вложение, которое минимизирует расстояние Фробениуса между исходной матрицей геодезического расстояния и атрибутом dist_matrix_
.