# 基于Canopy+K-means聚类的豆瓣电影推荐
## 数据
> 所有数据全部来源于豆瓣网站,使用selenium+chromedriver进行爬取
[[基于聚类的推荐算法笔记二](https://blog.csdn.net/jiaoooooo/article/details/119045527)]
爬取数据为(共193205条,0号文件):
![1](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/1.jpg)
清除0号文件username、rating、index、movie_url、Average_score列,然后在类型三列中空白位插入‘#’号占位,最后得到清理后的原始数据:
![2](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/2.jpg)
### 1.step0
使用step0.py文件划分实验集和测试集。
## 思路
> 通过统计每个用户对各个类别电影的观影数量计算占比得到用户偏好向量,降维之后进行聚类在簇内推荐
### 2.step1
在step1.py中读入实验集,输出统计每位用户观看不同类型的数量:
![3](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/3.jpg)
第i行表示用户u看过不同类别的电影数量,通过execl文件计算每个类别的占比:
![4](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/4.jpg)
### 3.step2
step2.py读入该文件进行降维生成坐标点:
![5](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/5.jpg)
对每个坐标点放大1000倍得到:
![6](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/6.jpg)
### 4.step3
计算Canopy聚类中的T值,读入坐标点计算每个点到其他点的平均距离的平均值作为T的参考,实验中选择T为100
### 5.step4
进行Canopy+K-means聚类,读入坐标点,在Visualization.py中输出聚类图片和用户聚类关系:
![7](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/7.jpg)
使用工具——合并聚类和用户id,利用坐标点确定一个用户id将其合并:
![8](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/8.jpg)
### 6.step5
共有182名用户分别进行推荐,存入文件夹:
![9](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/9.jpg)
使用工具——加入用户id,在推荐结果中加入用户id:
![10](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/10.jpg)
使用工具——文件夹合并,将所有推荐结果合并:
![11](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/11.jpg)
### 7.step6
读入推荐结果和测试集进行对比,得到平均准确率和召回率,改变Top-N推荐N值得到不同准确率和召回率:
![本文算法平均准确率和召回率](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/本文算法平均准确率和召回率.jpg)
## 改进
> **由于推荐结果数量太大,可以找到豆瓣近几年的热门电影集合,取推荐结果和热门电影集合的交集作为最后推荐结果,测试集也需要和热门电影集合取交集然后进行对比,可以提高准确率。**
## 聚类
> 使用Canopy+K-means混合聚类,点间距离用欧式距离公式计算得到
![Canopy+K-means聚类T1=100,T2=100,K=4](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/Canopy+K-means聚类T1=100,T2=100,K=4.png)
[[基于聚类的推荐算法笔记一](https://blog.csdn.net/jiaoooooo/article/details/119045349)]
## 推荐
> 使用协同过滤推荐,用户间相似度用余弦公式计算得到
[[基于聚类的推荐算法笔记三](https://blog.csdn.net/jiaoooooo/article/details/119573288)]
## 评价
![本文算法平均准确率和召回率](https://github.com/JiaoZixun/Recommend_By_Canopy-K-means/blob/main/img/本文算法平均准确率和召回率.jpg)
[[基于聚类的推荐算法笔记四](https://blog.csdn.net/jiaoooooo/article/details/119573497)]
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
人工智能-项目实践-推荐算法-基于豆瓣电影用户数据使用Canop+K-means聚类实现的协同过滤推荐算法
资源推荐
资源详情
资源评论
收起资源包目录
人工智能-项目实践-推荐算法-基于豆瓣电影用户数据使用Canop+K-means聚类实现的协同过滤推荐算法 (425个子文件)
0.csv 20.02MB
实验集.csv 6.69MB
实验数据_clear.csv 6.69MB
原始数据.csv 6.61MB
热门_推荐结果_Canopy+K-means_T1=100,T2=100.csv 3.83MB
测试集.csv 1.32MB
测试数据_182名_clear.csv 1.32MB
热门_测试数据.csv 313KB
douban_user_category.csv 48KB
douban_train_zuobiao.csv 9KB
recommend——豆瓣.iml 455B
豆瓣爬虫.ipynb 18.53MB
4.jpg 92KB
本文算法平均准确率和召回率.jpg 68KB
3.jpg 61KB
1.jpg 58KB
2.jpg 30KB
11.jpg 17KB
10.jpg 11KB
9.jpg 11KB
8.jpg 6KB
7.jpg 5KB
6.jpg 5KB
5.jpg 3KB
README.md 4KB
散点图.png 36KB
Canopy+K-means聚类T1=100,T2=100,K=4.png 35KB
step5———推荐.py 5KB
Visualization.py 5KB
对比实验——推荐.py 5KB
对比实验——评测.py 3KB
step6——评测.py 2KB
KMeans.py 2KB
对比实验1——确定K值.py 2KB
step4——Canopy+K-means聚类.py 2KB
step1——统计各用户各类型数量.py 1KB
工具——合并聚类和用户id.py 1KB
对比实验——K-means聚类.py 1KB
工具——加入用户id.py 1KB
Canopy.py 1KB
step2——pca降维.py 1KB
工具——柱状图.py 1KB
工具——折线图.py 1KB
工具——筛选热门测试集.py 1020B
工具——筛选热门推荐结果.py 1002B
工具——文件夹合并.py 984B
step3———确定T值.py 984B
工具——散点图.py 944B
step0——切分实验集.py 640B
工具——文件合并.py 518B
工具——读取数据.py 233B
Visualization.cpython-37.pyc 4KB
KMeans.cpython-37.pyc 2KB
Canopy.cpython-37.pyc 2KB
user_33_k邻=30_recommend.xls 981KB
user_36_k邻=30_recommend.xls 969KB
user_90_k邻=30_recommend.xls 953KB
user_37_k邻=30_recommend.xls 933KB
user_170_k邻=30_recommend.xls 925KB
user_132_k邻=30_recommend.xls 925KB
user_167_k邻=30_recommend.xls 925KB
user_45_k邻=30_recommend.xls 921KB
user_130_k邻=30_recommend.xls 909KB
user_131_k邻=30_recommend.xls 901KB
user_179_k邻=30_recommend.xls 901KB
user_93_k邻=30_recommend.xls 896KB
user_163_k邻=30_recommend.xls 892KB
user_147_k邻=30_recommend.xls 892KB
user_140_k邻=30_recommend.xls 888KB
user_39_k邻=30_recommend.xls 888KB
user_157_k邻=30_recommend.xls 884KB
user_169_k邻=30_recommend.xls 880KB
user_149_k邻=30_recommend.xls 880KB
user_62_k邻=30_recommend.xls 880KB
user_91_k邻=30_recommend.xls 876KB
user_171_k邻=30_recommend.xls 864KB
user_119_k邻=30_recommend.xls 864KB
user_41_k邻=30_recommend.xls 860KB
user_161_k邻=30_recommend.xls 856KB
user_38_k邻=30_recommend.xls 856KB
user_133_k邻=30_recommend.xls 856KB
user_106_k邻=30_recommend.xls 852KB
user_75_k邻=30_recommend.xls 848KB
user_175_k邻=30_recommend.xls 848KB
user_139_k邻=30_recommend.xls 840KB
user_121_k邻=30_recommend.xls 840KB
user_42_k邻=30_recommend.xls 832KB
user_124_k邻=30_recommend.xls 832KB
user_52_k邻=30_recommend.xls 828KB
user_158_k邻=30_recommend.xls 820KB
user_125_k邻=30_recommend.xls 820KB
user_174_k邻=30_recommend.xls 816KB
user_172_k邻=30_recommend.xls 812KB
user_29_k邻=30_recommend.xls 808KB
user_126_k邻=30_recommend.xls 808KB
user_44_k邻=30_recommend.xls 808KB
user_118_k邻=30_recommend.xls 808KB
user_116_k邻=30_recommend.xls 808KB
user_6_k邻=30_recommend.xls 804KB
user_24_k邻=30_recommend.xls 800KB
共 425 条
- 1
- 2
- 3
- 4
- 5
博士僧小星
- 粉丝: 1774
- 资源: 5875
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页