相关疑难解决方法(0)

余弦距离作为k均值的向量距离函数

我有一个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

13
推荐指数
1
解决办法
7168
查看次数