我试图通过余弦距离获得KNN,但看起来公制参数不会占用余弦距离。 http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.DistanceMetric.html仅提供以下指标。这是为什么 ?
用于实值向量空间的度量标准:
标识符类名称args距离函数
“欧几里德”欧几里德距离
sqrt(sum((x - y)^ 2))
“曼哈顿”ManhattanDistance
sum(| x - y |)
“切比雪夫”ChebyshevDistance
sum(max(| x - y |))
“minkowski”MinkowskiDistance p sum(| x - y | ^ p)^(1 / p)
“wminkowski”WMinkowskiDistance p,w sum(w * | x - y | ^ p)^(1 / p)
“seuclidean”SEuclideanDistance V sqrt(总和((x - y)^ 2 / V))
“mahalanobis”MahalanobisDistance V或VI sqrt((x - y)'V ^ -1(x - y))
用于二维向量空间的度量标准:
标识符类名称距离函数
“hasrsine”HaversineDistance
2 arcsin(sqrt(sin ^ 2(0.5 * dx)
COS(X1)COS(×2)罪^ 2(0.5 * DY)))
答案 0 :(得分:0)
在不满足三角不等式的意义上,余弦距离不是适当的距离。它本身的角度并不代表最短的距离。此处对此进行了很好的描述-https://en.wikipedia.org/wiki/Cosine_similarity。对于K-Means或任何距离类型相似性算法,必须满足距离度量标准(https://en.wikipedia.org/wiki/Metric_(mathematics))。