2013-03-24 4 views
1

Эта проблема https://math.stackexchange.com/questions/338646/sort-vectors-according-to-their-distance-between-them о сортировке векторов, основанных на расстоянии между ними. Как насчет сортировки векторов на основе коэффициента корреляции между ними. Я хочу, чтобы сортировать векторы на основе их «важности» в наборе данных. Если у нас есть N векторов, то сортировка будет V1, V2, ..., Vn, где V1 и Vn менее коррелированы, а остальные. V1 и V2 наиболее взаимосвязаны друг с другом ... и так далее. Я думал использовать Коэффициент Пирсона в качестве коэффициента корреляции. Возможно ли это или у вас есть представление об этой проблеме? И есть ли хороший алгоритм для этого, или мы должны найти корреляционный коэффициент между каждой парой векторов, а затем найти два менее коррелированных, а затем отсортировать все векторы между двумя менее коррелированными.Сортировка векторов на основе их корреляции

Thnx для чтения и ответа :)

+0

И что вы пробовали до сих пор? – Anthon

+0

http://en.wikipedia.org/wiki/Covariance_matrix – assylias

ответ

0

Пирсоны будут работать. Так будет обычный точечный продукт, Манхэттен и т. Д.

Вы понимаете, конечно, что для этого нужна матрица .

Вектор 1 отлично коррелирован с самим собой, поэтому его значение равно 1,0. (Предположим, что на диагонали матрицы.) Тогда следующее значение (1, 2) показывает, как вектор 1 коррелирует с вектором 2 и т. Д. Через (1, n).

Матрица симметрична, потому что (i, j) = (j, i).

Для векторов n есть nxn корреляции для расчета.

+0

thnx много. да, это правильно, но это займет слишком много времени. Как вы сказали, сложность O (n^2). Я задавался вопросом, есть ли какой-либо другой алгоритм для этой цели. – Panarit

+0

Нет, вот как долго это требуется. Сколько векторов у вас есть? Никакого другого алгоритма. Если вы беспокоитесь о времени, расставьте его. Попросите несколько потоков выполнить вычисления для вас. Я бы предположил, что N потоков может сделать это в O (N). – duffymo

+0

да, вы правы. на самом деле я не знаю, сколько векторов. Я думал использовать этот подход в алгоритме Som, чтобы инициализировать его «самыми важными» векторами в наборе данных. на самом деле я не уверен, в чем разница между сортировкой на основе расстояния и на основе коэффициента корреляции. Я не знаю, что лучше в случае SOM. если я хочу, чтобы osrt, основанный на расстоянии, я узнал, что корпус coVenx имеет сложность o (n * log n) ... у вас есть представление об этом? – Panarit

Смежные вопросы