的文档sklearn.neighbors.DistanceMetric声明_
为了在 BallTree 中使用,距离必须是一个真实的度量
(即为非负数,仅当对象相等、对称且满足三角不等式时为 0)。我的问题是,这些要求有多严格?更具体地说,球树是否适用于伪度量(对于不相等的对象可能为 0,但满足其他条件)?
的文档sklearn.neighbors.DistanceMetric声明_
为了在 BallTree 中使用,距离必须是一个真实的度量
(即为非负数,仅当对象相等、对称且满足三角不等式时为 0)。我的问题是,这些要求有多严格?更具体地说,球树是否适用于伪度量(对于不相等的对象可能为 0,但满足其他条件)?
我认为伪度量应该没问题。
BallTree 限制计算距离数量的能力在很大程度上依赖于三角形不等式和(可能在较小程度上)对称性。非消极性似乎很关键。至少,其中的代码sklearn可能会在某些地方默认假设对称性和非负性。
在伪度量中,关系“距离0”是等价关系,距离自然延伸到商空间,在商空间中是诚实度量。所以我认为对于 BallTrees 来说,这真的不重要。任何包含给定点的球也将自动包含其所有“等效”点。