2017-03-08 257 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

被調用的函數是相同的,但在第二種情況下,會添加一個附加參數以更改其行爲。

第二個關鍵字參數是order,如果這個參數沒有輸入,它會計算euclidian Norm sqrt(in1^2 - in2^2)。

如果L1範數的計算中的ord = 1(你的情況下),這是ABS(IN1 - 平方英寸)