2015-04-10 4 views
-2

Возможно ли использовать для корреляции между двумя векторами с использованием евклидова расстояния?Как вычислить корреляцию с евклидовым расстоянием?

Что я имею в виду евклидова расстояния является:

Euclidean(X,Y) = sqrt((x1 - y1)*(x1 - y1) + ... + (xN - yN)*(xN - yN)) 

Можно ли Стандартизирую или нормализовать векторы или даже без нормализации?

То, что я ищу, это вычислить оценку между 0 и 1. (1 ~ высокая корреляция)

В настоящее время я получаю вектор расстояний. Я делю его на максимальное расстояние. Я получаю вектор D.

И затем: 1 - D.

Считаете ли вы, что это хороший способ получить счет с евклидова расстояния?

Я также заинтересован иметь в одном месте все различные меры корреляции и их область применения.

+0

Точечный продукт двух нормированных векторов находится в диапазоне от (0,1). Это сработает. – duffymo

+0

Спасибо, но я действительно хочу, чтобы он использовал Евклидовское расстояние/или что-то «очень» похоже. – DavidK

+1

Вы, очевидно, не понимаете векторы. Как вы нормализуете вектор? Использование евклидова расстояния. Точечный продукт включает в себя оба. – duffymo

ответ

0

Указанные два вектора в 3D пространстве u = (u1, u2, u3) и v = (v1, v2, v3) можно рассчитать единичные векторы для каждого из них путем деления каждого компонента на величину, которая является евклидово длина вектора:

m = u/mag(u) = (u1, u2, u3)/sqrt(u1*u1 + u2*u2 + u3*u3) = (m1, m2, m3) 
n = v/mag(v) = (v1, v2, v3)/sqrt(v1*v1 + v2*v2 + v3*v3) = (n1, n2, n3) 

Скалярное произведение из два единичных вектора изменяется от (-1, 1):

m dot n = m1*n1 + m2*n2 + m3*n3 
+0

Извините, но это не то, что я искал. Я знаю точечный продукт. – DavidK

1

есть любой из множества способов, вы можете определить, как похожи два вектора, хотя я подозреваю, что не все из них, строго говоря, меры корреляции. Если вы заинтересованы в использовании величины векторов и их разности, то очевидной метрикой будет относительная величина вектора разностей и средняя величина двух заданных векторов. Например даны векторы X и Y, которые не являются и 0, можно вычислить метрику M:

 2∙||X-Y|| 
M = ------------- 
    ||X|| + ||Y|| 

Теперь это будет несколько реверс то, что вы ищете, где значения, близкие к 0 представляют собой векторы, являются относительно близкими друг к другу, и на самом деле нет никакой зависимости от того, насколько это может получиться. Однако есть способы получить M' на основе M. Один из способов сделать это могут быть:

M' = 1-2∙atan(M)/π 

Другим способом получить M' на основе вашего описания является использование экспоненциального распада, как в:

M' = exp(-M) 

В любом случае M' будет 1, когда векторы идентичны и будут асимптотически приближаться к 0, тем больше их разность относительно их средних длин.

Мне неизвестно какое-либо формальное имя, данное этому подходу (это не значит, что его нет). Я просто сделал это на основе того, что я воспринимал как ваши требования.Тем не менее, я до сих пор не совсем понимаю, что именно вы ищете, поэтому, если это не то, что вам нужно, то укажите, почему это не сработает для вас, чтобы я или другие люди могли лучше понимать ваши требования и предлагать лучше решение.

+0

Большое спасибо; это тот ответ, который я искал. Я знаю, что Euclidean Distance может использоваться для вычисления корреляций между генами. Мой вопрос: как преобразовать расстояние в счет, который будет похож на корреляцию Пирсона. Я не понимаю, почему некоторые люди хотят закрыть мой вопрос ... – DavidK

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