2017-03-08 259 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 - 平方英寸)