2016-07-02 2 views
0

의 나는 다음과 같은 두 벡터가 있다고 가정 해 봅시다 :두 벡터에서 정규화 된 유클리드 거리를 계산하는 방법은 무엇입니까?

x = [(10-1).*rand(7,1) + 1; randi(10,1,1)]; 
y = [(10-1).*rand(7,1) + 1; randi(10,1,1)]; 

처음 7 개 요소의 범위 [1,10]에서 연속 값입니다. 마지막 요소는 [1,10] 범위의 정수입니다.

이제 x와 y 사이의 유클리드 거리를 계산하고 싶습니다. 모든 다른 요소는 매우 가깝게 될 수 있기 때문에 정수 요소가 문제라고 생각하지만 정수 요소는 항상 간격을 갖습니다. 따라서 정수 요소에 대한 편향이 있습니다.

정규화 된 유클리드 거리와 같은 것을 어떻게 계산할 수 있습니까?

답변

2
Wolfram Alpha에 따르면

the following answer from cross validated, 정규화 Eucledean 거리에 의해 정의됩니다 사용하여

enter image description here

당신은 MATLAB과를 계산할 수 있습니다

0.5*(std(x-y)^2)/(std(x)^2+std(y)^2) 

을 양자 택일로, 당신은 사용할 수 있습니다 :

0.5*((norm((x-mean(x))-(y-mean(y)))^2)/(norm(x-mean(x))^2+norm(y-mean(y))^2)) 
+0

오프 주제 종류의 입수했습니다 답변 해주셔서 감사합니다. 따라서 각 측정 기준을 표준화해야하지만 데이터 포인트가 2 개만 있습니다. 즉, 각 측정 기준에 대해 두 개의 값이 있습니다. 표준 편차 (또는 평균)를 사용하는 데 약간 적지 않은가? – machinery

+0

그런데 zscore를 사용하여 평균을 빼고 표준 편차로 나눈 다음 표준 유클리드 거리를 사용하면됩니까? – machinery

+0

첫 번째 의견과 관련하여이 정의는 R^2의 벡터로도 잘 정의되어 있습니다. 두 번째 이야기 - 그것에 대해서도 생각하고 다시 생각해 볼 것입니다. – drorco

1

거리를 계산하기 전에 x와 y를 정규화 한 다음 바클라 유클리드만으로 충분할 것입니다. 그러나

x_norm = (x -1)/9;   % normalised x 
y_norm = (y -1)/9;   % normalised y 
dist = norm(x_norm - y_norm); % Euclidean distance between normalised x, y 

당신의 예에서

, 나는 정수 요소를 갖는 편견의 일종에 기여 여부에 대해 확실하지 오전하지만 우리는 이미 스택 오버 플로우 :

+0

고마워요. 어떻게 표준화 했습니까 (1을 뺀 다음 9로 나눕니 까?). 이 toppic은 어느 stackexchange에 더 잘 매칭됩니까? – machinery

+0

교차 유효성 검사가이 주제와 더 잘 일치하는 것 같습니다. [0,1] 간격에서 x를 정규화하려면 (x - min (x))/(max (x) - min (x))를 수행해야합니다. – Chris

관련 문제