Scikit Learn 中的距离度量

Distance metrics in Scikit Learn

我正在查看 Scikit Learn 中为成对距离实现的一些 distance metrics。他们包括

‘cityblock’

‘euclidean’

‘l1’

‘l2’

‘manhattan’

现在我一直假设(例如基于 here and here)欧几里德与 L2 相同;和曼哈顿 = L1 = cityblock.

在 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

所以您的假设是正确的,因为 cityblockmanhattanl1 都在内部映射到 pairwise.manhattan_distances

为什么使用多个名称? 因为来自不同背景的不同人对相同的想法使用不同的名称。

我确实认为我可以使用 cityblock if the name rings a bell (for me) 而不是需要自己建立连接 cityblock == l1 if cityblock不受明确支持。