用户相似度分析
计算用户购买物品的相似度
假设当前文件夹中有“用户行为记录.xlsx”,要求统计所有用户中相似度最高的n个用户及其共同购买物品数量,其中n可以指定为大于或等于2的整数。相似度高的定义为共同购买物品数量最多。
文件“用户行为记录.xlsx”里的数据内容](https://i-blog.csdnimg.cn/blog_migrate/fa77087eed1a1f0eab7c5b390f780747.png)
程序编写
使用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 = openpyxl.load_workbook(filename)
ws = wb.worksheets[0]
# 遍历Excel文件中的所有行
for inde

本文介绍了一种基于Python的用户相似度分析方法,通过计算用户之间的共同购买物品数量来衡量相似度。利用openpyxl库从Excel文件中读取用户行为记录,并通过组合数学和函数式编程方法找出相似度最高的多个用户。
最低0.47元/天 解锁文章
189





