【问题标题】:Why doesnt SKLearn's Distance Metric class have Cosine Distance?为什么 SKLearn 距离度量类没有余弦距离?
【发布时间】:2016-12-05 21:53:55
【问题描述】:

我正在尝试获得具有余弦距离的 KNN,但看起来度量参数不采用余弦距离。 http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.DistanceMetric.html 中仅提供以下指标。这是为什么 ?

用于实值向量空间的指标: 标识符类名 args 距离函数 “欧几里得” 欧几里得距离
sqrt(总和((x - y)^2)) “曼哈顿”曼哈顿距离
总和(|x - y|) “切比雪夫”切比雪夫距离
总和(最大值(|x - y|)) “minkowski” 闵可夫斯基距离 p 总和(|x - y|^p)^(1/p) “wminkowski” WMinkowski 距离 p, w sum(w * |x - y|^p)^(1/p) “seuclidean” SEuclideanDistance V sqrt(sum((x - y)^2 / V)) “mahalanobis” 马氏距离 V 或 VI sqrt((x - y)' V^-1 (x - y)) 用于二维向量空间的指标: 标识符类名距离函数 “haversine” HaversineDistance
2 arcsin(sqrt(sin^2(0.5*dx) cos(x1)cos(x2)sin^2(0.5*dy)))

【问题讨论】:

标签: scikit-learn knn


【解决方案1】:

从不满足三角不等式的意义上说,余弦距离不是一个合适的距离。它是一个角度,并不代表任何意义上的最短距离。这在这里描述得很好 - https://en.wikipedia.org/wiki/Cosine_similarity 。对于 K-Means 或任何距离类型的相似性算法,满足距离度量要求 (https://en.wikipedia.org/wiki/Metric_(mathematics)) 是必要的要求。

【讨论】:

    猜你喜欢
    • 2017-12-12
    • 2017-07-10
    • 2014-09-30
    • 2015-05-31
    • 2021-09-09
    • 1970-01-01
    • 2014-02-25
    • 2010-10-31
    • 2016-08-23
    相关资源
    最近更新 更多