def newUserSim(dataSet):
n = np.shape(dataSet)[0] #?userNum
userSimArr = np.zeros(shape=(n,n)) #???????????????,???
userCommon = np.zeros(shape=(n,n)) #???????
newUserSim = np.zeros(shape=(n,n)) #????????,????
for i in range(n):
for j in range(i+1, n):
overLap = np.nonzero(np.logical_and(dataSet[i,:]>0, dataSet[j,:]>0))[0]
if len(overLap) > 1:
sim = pearsSim(dataSet[i,overLap], dataSet[j,overLap])
else:
sim = 0
userSimArr[i][j] = sim
userSimArr[j][i] = sim
userCommon[i][j] = len(overLap)
userCommon[j][i] = len(overLap)
coef = np.exp((userCommon*1.0/userCommon.max(axis=0))-1)
newUserSim = coef * userSimArr #????,????????????????
newUserSim = np.nan_to_num(newUserSim)
return newUserSim, userCommon
#????????????
Phase3.py 文件源码
python
阅读 27
收藏 0
点赞 0
评论 0
评论列表
文章目录