我在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
因此,您的假设是正确的,因为cityblock
、manhattan
和l1
都在内部映射到pairwise.manhattan_distances
!
为什么有多个名称在使用<因为不同背景的人对相同的想法使用不同的名字>因为不同背景的人对相同的想法使用不同的名字>
我确实认为,如果名称(对我来说)听起来很响,我可以使用cityblock
,而不需要自己建立连接,如果cityblock
不明确支持,我可以用cityblock == l1
。