两种算法用来计算相似度评价,应用于例如网站的自动推荐。
欧几里得距离评价
将被评价的内容变为横纵坐标,称为“偏好空间”,将评价人置于坐标系中例如:
如图Toby对Snakes的评价为4.5,对Dupree的评价为1。
通过计算两个评价人在偏好空间中的距离平方和再开方即为两人的相似度,距离越短越相似。
为了得出数值便于理解,将计算所得距离+1取倒数,得到0-1范围内的相似值。+1的原因是防止距离为0,无法取倒数。相似值越高越相似。
代码(python):
critics = {
'Lisa':{
'Lady':2.5,'Snak':3.5,'Just':3.0,'Superman':3.5,'Dupree':2.5,'Night':3.0},
'Gene':{
'Lady':3.0,'Snak':3.5,'Just':1.5,'Superman':5.0,'Dupree':3.5,'Night':3.0},
'Michael':{
'Lady':2.5,'Snak':3.0,'Superman':3.5,'Night':4.0},
'Claudia':{
'Snak':3.5,'Just':3.0,'Superman':4.0,'Dupree':2.5,'Night':4.5},
'Mick':{
'Lady':3.0,'Snak':4.0,'Just':2.0,'Superman':3.0,'Dupree':2.0,'Night':3.0},
'Jack':{
'Lady':3.0,'Snak':4.0,