def newItemSim(data_matrix):
n = np.shape(data_matrix)[1] # ?itemNum
itemSimArr = np.zeros(shape=(n, n)) # ???????????????,???
itemCommon = np.zeros(shape=(n, n)) # ????????
for i in range(n):
for j in range(i+1, n):
overLap = np.nonzero(np.logical_and(data_matrix[:, i]>0, data_matrix[:, j]>0))[0]
if len(overLap) > 1:
sim = computeSim(data_matrix[overLap, i], data_matrix[overLap, j])
else:
sim = 0
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, itemCommon
# ??????????????????
Phase4.py 文件源码
python
阅读 31
收藏 0
点赞 0
评论 0
评论列表
文章目录