我的目标是根据用户的属性计算两个用户之间的相似度。例如,我们考虑一个玩家,将年龄、薪水和得分作为属性。此外,我想按照重要性顺序给每个属性分配权重。在我的情况下,年龄比薪水和得分更重要。因此,假设我们使用欧几里得距离来计算相似度。
为了计算用户1和用户2之间的相似度,我可以进行以下计算:
Given user 1 who is age 20, salary 50, points scored 100
Given user 2 who is age 24, salary 60, points scored 85
Given user 3 who is age 19, salary 62, points scored 80
为了计算用户1和用户2之间的相似度,我可以进行以下计算:
现在我们想要加入权重,以便在欧几里得距离中,数字越小则说明两个对象越相似。正如前面提到的,由于年龄是最重要的因素,所以我们将分配权重如下:sqrt((20-24)^2 + (60-50)^2 + (85-100)^2)
我的方法正确吗?另外,我是否应该考虑其他算法,例如余弦相似性来计算相似度?sqrt(0.60*(20-24)^2 + 0.20*(60-50)^2 + 0.20*(85-100)^2)