2017-03-08 6 views
2

KNN 구현의 두 가지 방법이 있습니다. 나는 그것들이 두 가지 거리 측정 값이라는 것을 모았지만, 나는 그것이 어떻게 다른지 이해하지 못한다. 나는 그 방법을 보려고했지만 아무런 운이 없었습니다.이러한 np.linalg.norm 메서드의 차이점

def euclideanDistance(in1,in2): 
    return np.linalg.norm(in1-in2) 

def L1Distance(in1,in2): 
    return np.linalg.norm(in1-in2,1) 
+0

[L1] (http://mathworld.wolfram.com/L1-Norm.html) vs [L2] (http://mathworld.wolfram.com/L2-Norm.html) (일명 유클리드) 규범. –

+1

첫 번째 경우에는 'ord = None'이고, 두 번째 경우에는'ord = 1'입니다. 정확하게 그 부분을 이해하지 못합니까? – Evert

+1

또한 [this] (https://rorasa.wordpress.com/2012/05/13/l0-norm-l1-norm-l2-norm-l-infinity-norm/)은 읽을만한 가치가 있습니다. –

답변

2

호출되는 함수는 동일하지만 두 번째 경우에는 함수의 동작을 변경하기 위해 추가 인수가 추가됩니다.

두 번째 키워드 인수는 순서이며,이 인수에 대한 입력이 없으면 Euclclient Norm sqrt (in1^2 - in2^2)를 계산합니다.

경우 ABS 인 L1 놈 계산되는 ORD = 1 (케이스) (IN1 - IN2)