Python Scikit学习中的距离度量

Python Scikit学习中的距离度量,python,scikit-learn,distance,euclidean-distance,Python,Scikit Learn,Distance,Euclidean Distance,我在看Scikit Learn中实现的一些成对距离。包括 “城市街区” “欧几里得” “l1” “l2” “曼哈顿” 现在我总是假设(基于和)欧几里德和L2是一样的;曼哈顿=L1=城市街区 这在Scikit Learn中不是真的吗?否则,为什么同样的东西用不同的名字命名呢?你的名字会告诉你到底发生了什么。每个字符串都映射到一个内部函数 metric Function ‘cityblock’ metrics.pairwise.manhattan_distances ‘cosine’ met

我在看Scikit Learn中实现的一些成对距离。包括

“城市街区”

“欧几里得”

“l1”

“l2”

“曼哈顿”

现在我总是假设(基于和)欧几里德和L2是一样的;曼哈顿=L1=城市街区

这在Scikit Learn中不是真的吗?否则,为什么同样的东西用不同的名字命名呢?

你的名字会告诉你到底发生了什么。每个字符串都映射到一个内部函数

metric  Function
‘cityblock’ metrics.pairwise.manhattan_distances
‘cosine’    metrics.pairwise.cosine_distances
‘euclidean’ metrics.pairwise.euclidean_distances
‘l1’    metrics.pairwise.manhattan_distances
‘l2’    metrics.pairwise.euclidean_distances
‘manhattan’ metrics.pairwise.manhattan_distances
因此,您的假设是正确的,因为
城市街区
曼哈顿
l1
都在内部映射到
成对的曼哈顿距离

为什么使用多个名称?因为不同背景的人用不同的名字表达相同的想法

我确实认为,如果名字(对我来说)响了,我可以使用
cityblock
,而不是需要自己联系
cityblock==l1
如果
cityblock
没有明确支持