以下是一个简单的 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录