基于用户共同评分相似度的协同过滤电影推荐系统
项目介绍
本项目实现了一个基于用户的协同过滤推荐系统,专门用于电影推荐场景。系统核心通过分析用户之间的评分行为相似性,为目标用户发现偏好相近的邻居用户,并综合这些邻居的评分来预测目标用户可能感兴趣但尚未观看的电影。项目采用成熟的协同过滤算法,结合高效的矩阵运算,能够处理大规模的用户-电影评分数据,并生成个性化的Top-N推荐列表。
功能特性
- 用户相似度计算:支持使用皮尔逊相关系数或余弦相似度来衡量任意两个用户基于共同评分项目的偏好相似度。
- 最近邻筛选:根据设定的最近邻数量k和最小共同评分项目阈值,为目标用户寻找最相似的k个有效邻居用户。
- 评分预测:基于相似邻居用户的评分,预测目标用户对未评分电影的感兴趣程度(预测评分)。
- Top-N推荐生成:根据预测评分的高低,为目标用户生成一个排序后的个性化电影推荐列表,并可提供推荐置信度。
- 系统性能评估:提供平均绝对误差(MAE)、均方根误差(RMSE)和推荐覆盖率等多重指标,用于量化评估推荐算法的准确性和覆盖率。
使用方法
- 准备输入数据:将数据组织为用户-电影评分矩阵(稀疏矩阵格式),其中行代表用户,列代表电影,矩阵元素为1-5的整数评分或NaN(代表未评分)。
- 设置运行参数:指定目标用户的ID索引、相似度度量方法('pearson'或'cosine')、最近邻个数k以及最小共同评分项目数。
- 执行推荐算法:运行系统主程序。系统将首先计算全体用户的相似度矩阵,然后针对目标用户执行邻居选择、评分预测和推荐列表生成。
- 获取输出结果:系统将输出目标用户的Top-N推荐电影ID、对应的预测评分及置信度。同时,可输出用户相似度矩阵以及模型在测试集上的评估指标(MAE, RMSE, 覆盖率)。
系统要求
- 操作系统:Windows, macOS 或 Linux。
- 软件环境:需要安装 MATLAB (推荐 R2016b 或更高版本)。
- 内存:建议至少 4GB RAM,处理大规模数据集时需更大内存。
文件说明
主程序文件封装了推荐系统的核心工作流程。其主要功能包括:读取和预处理用户-电影评分数据;根据用户选择的相似度度量方法计算用户间的相似度矩阵;依据设定的邻居数量与共同评分阈值寻找目标用户的最近邻;利用近邻的评分数据预测目标用户对未评分项目的偏好分数;最终生成并输出排序后的推荐列表。此外,该文件还整合了评估模块,用于计算预测评分与真实评分之间的误差指标以及系统的推荐覆盖率。