请问如何计算两个人的“相似度”?
现在有两个人的数据:
属性 ---- 张三 ---- 李四
年龄 ---- 28 ------ 30 (岁)
身高 ---- 170 ----- 175 (cm)
体重 ---- 65 ------ 68 (kg)
婚否 ---- 已婚 ---- 未婚
学历 ---- 本科 ---- 硕士
我希望算出一个数,在[0, 1]区间里,表示两人的“相似度”(0=一点不像,1=完全相同),请问该如何计算呢?谢谢大家!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先要针对具体的需求给每个属性响应的权重,比如:未婚、已婚属性和本科、硕士属性,然后对每个属性进行归一化。
假设:
本科 10 ,硕士 20,博士 30
已婚 0,未婚 1
张三:[28 170 65 0 10] 李四:[30 175 68 1 20]
计算余弦距离:
这样计算的距离可能与希望的不一致,因为,身高的数值大,未婚、已婚的数值小,可以在这个基础上给每个属性乘以一个权重,再进行计算
把已婚未婚01化,把学历量化。
这样一个人就是一个向量,问题转化为向量距离计算,常见的有欧式距离、马氏距离、余弦夹角等。
需要注意把每个量都要归一化,避免某个量影响太大(如身高值很大),也可以自己按需设计权重。