我有一个N个顶点的图形,其中每个顶点代表一个地方.此外,我有一个向量,每个用户一个,N个系数中的每一个,其中系数的值是在相应位置花费的持续时间(秒),如果没有访问该位置,则为0.
例如图表:

向量:
v1 = {100, 50, 0 30, 0}
Run Code Online (Sandbox Code Playgroud)
意味着我们花了:
100secs at vertex 1
50secs at vertex 2 and
30secs at vertex 4
Run Code Online (Sandbox Code Playgroud)
(未访问的顶点3和5,因此为0).
我想运行k-means聚类,我选择cosine_distance = 1 - cosine_similarity了距离的度量,其公式为cosine_similarity:

作为描述在这里.
但我注意到以下情况.假设k=2其中一个向量是:
v1 = {90,0,0,0,0}
Run Code Online (Sandbox Code Playgroud)
在解决最小化候选质心总距离的优化问题的过程中,假设在某一点上,2个候选质心是:
c1 = {90,90,90,90,90}
c2 = {1000, 1000, 1000, 1000, 1000}
Run Code Online (Sandbox Code Playgroud)
运行cosine_distance(v1,c1)和(v1,c2)的公式,我们得到0.5527864045两者的距离完全相同.
我认为v1比c2更接近c1更接近(更接近).显然事实并非如此.
Q1.为什么这个假设错了?
Q2.在这种情况下,余弦距离是否是正确的距离函数?
Q3.考虑到问题的本质,什么会更好?
cluster-analysis distance data-mining k-means cosine-similarity