Casey Lao, Lucas Ma, Secary Ma
该项目为开发一个基于FP-growth与协同过滤的基础上的混合推荐算法,旨在提升针对个性化推荐时的准去率与召回率。
本项目使用 Python 编写,提交请尽量使用 main 分支(git push origin main),请在本地做好分支管理。
由三人共同构建,贡献如下:
- Task 1(Lucas): 利用FP-growth挖掘出频繁商品集规则
- Task 2(Casey): 使用SVD或Cosine相似度对用户行为打分,根据打分进行个性化推荐,同时还需要合并Task 1的规则推荐列表
- Task 3(Secary): 整合Task 1与Task 2的输出并设计一种能避免冷启动等问题的混合推荐算法
├─data # 数据目录
├─materials # 参考资料目录
├─notebook
│ 42_assign3.ipynb # 最终整合代码
│ task1.ipynb # Task1关联规则挖掘代码
│ task2.ipynb # Task2协同过滤推荐代码
│ task3.ipynb # Task3混合推荐算法代码
├─report
│ │ 42_assign3.bib # 报告参考资料
│ │ 42_assign3.cls # 报告模板
│ │ 42_assign3.pdf # 报告正文(含附录)
│ │ 42_assign3.tex # 报告源码
│ └─appendices # 附录目录
├─result
│ cf_recommendations.csv # 协同过滤推荐结果
│ hybrid_recommendations.csv # 混合推荐结果
│ hybrid_test_result.csv # 混合推荐验证结果
│ rules.csv # 关联规则
└─scripts
│ methods.py # 公共函数模块
│ task1.py # 频繁模式挖掘脚本
│ task2.py # 协同过滤推荐脚本
└─ task3.py # 混合推荐脚本
pip install -r requirements.txt
-
Task1.ipynb 关联规则挖掘(
FP-Growth)演示
使用训练集 Groceries data train.csv 对应 Lucas 编写的任务 1 结果展示 -
Task2.ipynb 使用
Cosine Similarity或SVD预测评分、生成推荐
并在验证集 Groceries data test.csv 上评估
对应 Casey 编写的任务 2 结果展示 -
Task3.ipynb 融合
Task1与Task2的输出,生成混合推荐模型
包含完整推荐流程与测试结果展示 -
42_assign3.ipynb 整合三个任务的代码
在验证集上评估推荐效果并分析表现
对应最终交付的混合推荐系统与报告分析
-
Task1.py 使用
Apriori和FP-Growth挖掘用户交易中的关联规则
默认参数:min_support=0.05,min_confidence=0.3
输出保存至 rules.csv -
Task2.py 使用
Truncated SVD对用户评分矩阵进行协同过滤推荐
输出个性化Top-N推荐列表(结合 Task1 规则)
保存推荐结果至 cf_recommendations.csv -
Task3.py 融合
Task1(规则推荐)与Task2(协同过滤)结果
综合评分:关联规则权重0.5,协同过滤权重1.0,优先推荐关联部分
推荐结果保存至 hybrid_recommendations.csv 并对验证集进行评估,结果保存至 hybrid_test_result.csv -
Methods.py 公共函数模块,包含:
- 数据预处理(评分矩阵与交易列表)
- 列表型字符串解析
- 模型评估指标计算等
