我正在看一些在Scikit Learn中为成对距离实现的distance metrics。它们包括
'城市街区'
“欧几里得”
‘l1’
‘l2’
'曼哈顿'
现在我一直假设(例如基于here和here)欧几里得与L2相同;曼哈顿= L1 =街区。
在Scikit Learn中这不是真的吗?否则,为什么同一事物使用不同的名称?
最佳答案
您的link会告诉您确切的情况。这些字符串中的每一个都映射到一个内部函数。
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 == l1
则需要自己建立cityblock
的连接。