ОБНОВЛЕНИЕ 1: речь идет не о простой сортировке списков поплавков, а в способе индексации списков поплавков, чтобы позже можно было быстро найти те, у которых были близкие евклидовы расстояния до образца.Как индексировать последовательности поплавков? (для эвклидовой дистанции)
ОБНОВЛЕНИЕ 2: Это нормально, если это другой метод, чем просто индекс поплавка. Основная цель - быстро найти похожие (короткие евклидова расстояния) последовательности без необходимости читать целую или большую часть базы данных последовательностей.
Возможно, вычисление среднего достаточно, но то, что я ищу, является числом с плавающей точкой, которое может быть описательным для последовательности, которую она представляет.
Например, эти последовательности поплавков:
sequence[0] = [0.42, 0.81, 0.33, 0.19, 0.56]
sequence[1] = [0.72, 0.93, 0.14, 0.92, 0.88]
average[0] = 0.462
average[1] = 0.718
Идея заключается в том, чтобы отсортировать последовательности с помощью этого «индексации поплавком» (в данном примере: среднее), так что, когда другая последовательность сравнивается со списком последовательности, чтобы найти похожие, он может начать сравнивать (эвклидовое расстояние) от ближайшего «индексационного поплавка» и перемещать указатель вверх и вниз от этой точки массива.
Это будет число с плавающей точкой, которое позволит «приблизиться» к тем последовательностям, которые имеют меньшие евклидовы расстояния до поисковой последовательности.
Язык: Python. – Davinish
Вам нужно использовать только один float для вашего индекса, или вы можете использовать более сложную структуру данных? В принципе, в высокоразмерном пространстве, таком как ваше, одно плавание не будет хорошо тарифицироваться. Вы можете лучше использовать эвклидовую норму (квадратный корень из суммы квадратов элементов), которая будет группировать элементы одинаковой величины вместе, но, вероятно, не поможет слишком много, когда данные станут большими. Если количество последовательностей очень велико, вы захотите использовать структуру данных, такую как kd-tree (не так сложно писать), чтобы быстро найти соседей. – Gretchen
Это нормально, если это сложнее. Цель состоит в том, чтобы быстро находить последовательности в больших списках без необходимости считывать все (или слишком много) базы данных. – Davinish