现在有两个人的数据:
属性 ---- 张三 ---- 李四
年龄 ---- 28 ------ 30 (岁)
身高 ---- 170 ----- 175 (cm)
体重 ---- 65 ------ 68 (kg)
婚否 ---- 已婚 ---- 未婚
学历 ---- 本科 ---- 硕士
我希望算出一个数,在[0, 1]区间里,表示两人的“相似度”(0=一点不像,1=完全相同),请问该如何计算呢?谢谢大家!
现在有两个人的数据:
属性 ---- 张三 ---- 李四
年龄 ---- 28 ------ 30 (岁)
身高 ---- 170 ----- 175 (cm)
体重 ---- 65 ------ 68 (kg)
婚否 ---- 已婚 ---- 未婚
学历 ---- 本科 ---- 硕士
我希望算出一个数,在[0, 1]区间里,表示两人的“相似度”(0=一点不像,1=完全相同),请问该如何计算呢?谢谢大家!
把已婚未婚01化,把学历量化。
这样一个人就是一个向量,问题转化为向量距离计算,常见的有欧式距离、马氏距离、余弦夹角等。
需要注意把每个量都要归一化,避免某个量影响太大(如身高值很大),也可以自己按需设计权重。
3 回答3.4k 阅读✓ 已解决
1 回答4.5k 阅读
2 回答1.3k 阅读
2.8k 阅读
1 回答1.7k 阅读
1 回答768 阅读
1 回答830 阅读
首先要针对具体的需求给每个属性响应的权重,比如:未婚、已婚属性和本科、硕士属性,然后对每个属性进行归一化。
假设:
本科 10 ,硕士 20,博士 30
已婚 0,未婚 1
张三:[28 170 65 0 10] 李四:[30 175 68 1 20]
计算余弦距离:

这样计算的距离可能与希望的不一致,因为,身高的数值大,未婚、已婚的数值小,可以在这个基础上给每个属性乘以一个权重,再进行计算