以下是一个简单的基于协同过滤的推荐系统的代码示例,使用 Python 语言,读取包含用户行为数据的 CSV 文件:

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

# 读取数据
data = pd.read_csv('data.csv')

# 构建用户-物品矩阵
user_item_matrix = pd.pivot_table(data, values='behave_type', index='user_id', columns='item_id')

# 计算物品之间的相似度
item_similarity = cosine_similarity(user_item_matrix.T)

# 给用户推荐物品
def recommend_items(user_id, top_n):
    user_items = user_item_matrix.loc[user_id].dropna().index
    item_scores = pd.DataFrame(index=user_item_matrix.columns, columns=['score'])
    for item in user_items:
        item_scores.loc[item] = item_similarity[item].dot(user_item_matrix.loc[user_id]) / item_similarity[item].sum()
    item_scores = item_scores.sort_values(by='score', ascending=False)
    return item_scores.head(top_n).index.tolist()

# 示例:给用户1推荐5个物品
recommend_items(1, 5)

说明:

  1. 首先读取数据,并将数据转化为用户-物品矩阵,其中缺失值用 NaN 表示;
  2. 然后计算物品之间的相似度,使用余弦相似度 (cosine similarity);
  3. 最后,定义一个函数 recommend_items,给定一个用户 ID 和推荐的物品数量,该函数会返回推荐的物品列表。

当然,这只是一个简单的示例,实际的推荐系统还需要考虑很多因素,如用户的历史行为、物品的属性特征等。

Python 协同过滤推荐系统示例:基于 CSV 文件的用户行为数据

原文地址: https://www.cveoy.top/t/topic/mTV6 著作权归作者所有。请勿转载和采集!

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