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