Python 代码实现物品之间杰卡德相似度计算
以下是一个简单的 Python 代码实现,用于计算物品之间的杰卡德相似度。
import numpy as np
# 定义计算杰卡德相似度的函数
def jaccard_similarity(x, y):
intersection_cardinality = len(set.intersection(*[set(x), set(y)]))
union_cardinality = len(set.union(*[set(x), set(y)]))
return intersection_cardinality / float(union_cardinality)
# 构造一个用户物品矩阵
user_item_matrix = np.array([[1, 1, 0, 1], [0, 1, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]])
# 计算物品之间的杰卡德相似度
item_similarity_matrix = np.zeros((user_item_matrix.shape[1], user_item_matrix.shape[1]))
for i in range(user_item_matrix.shape[1]):
for j in range(user_item_matrix.shape[1]):
item_similarity_matrix[i][j] = jaccard_similarity(user_item_matrix[:, i], user_item_matrix[:, j])
print(item_similarity_matrix)
该代码使用 numpy 库构造了一个 4x4 的用户物品矩阵,其中 1 表示用户对该物品感兴趣,0 表示不感兴趣。然后,通过循环计算每对物品之间的杰卡德相似度,并将结果保存到一个矩阵中。最后,打印出物品之间的杰卡德相似度矩阵。
原文地址: https://www.cveoy.top/t/topic/n0VC 著作权归作者所有。请勿转载和采集!