【问题标题】:Distance metrics in Scikit LearnScikit Learn 中的距离度量
【发布时间】:2016-09-15 03:34:12
【问题描述】:
我正在查看在 Scikit Learn 中为成对距离实现的一些 distance metrics。它们包括
‘城市街区’
‘欧几里得’
‘l1’
‘l2’
‘曼哈顿’
现在我总是假设(例如基于 here 和 here)欧几里得与 L2 相同;和曼哈顿 = L1 = 城市街区。
在 Scikit Learn 中不是这样吗?不然为什么同一个东西用不同的名字?
【问题讨论】:
标签:
python
scikit-learn
distance
euclidean-distance
【解决方案1】:
您的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 不受明确支持。