用户相似度分析
计算用户购买物品的相似度
假设当前文件夹中有“用户行为记录.xlsx”,要求统计所有用户中相似度最高的n个用户及其共同购买物品数量,其中n可以指定为大于或等于2的整数。相似度高的定义为共同购买物品数量最多。
文件“用户行为记录.xlsx”里的数据内容
程序编写
使用Python扩展库openpyxl读取Excell文件中的数据,返回一个字典。在字典中,使用用户名字作为“键“,使用包含该用户购买物品名称的集合作为”值“。读取数据时,跳过表头,对于每一行有效数据,获取每一行的物品名称和用户清单,对该物品的购买用户进行分割得到用户列表,列表中的每个用户都购买过该行对应的物品。
from itertools import combinations
from functools import reduce
import openpyxl
from openpyxl import Workbook
def getUsers(filename):
users = dict()
# 打开xlsx文件,并获取第一个worksheet
wb =