个性化社交网络协同过滤推荐系统依赖用户的社交关系(用户关注用户的操作数据,称为用户之间的信任度),根据用户对项目的评分数据,计算目标用户的最近邻居,同时将目标用户信任的用户加入最近邻居,进行推荐,旨在提高目标用户信任的其他用户的相似用户的项目推荐,达到推荐更准确的目的。 本文主要讲解了个性化社交网络协同过滤推荐系统实现的开发环境、数据集、开发过程、协同过滤推荐算法、推荐算法测评指标、实现结果等内容。 # 一、个性化社交网络协同过滤推荐系统开发工具及开发环境介绍 1、开发工具:MyEclipse,jdk1.7,tomcat7,mysql5.5,navicat; 2、开发框架:Spring+Struts+Hibernate,页面采用jsp,jquery脚本,bootstrapt脚本,layer弹窗组件。 # 二、个性化社交网络协同过滤推荐系统数据集介绍 本系统采用filmtrust数据集,数据集一共两个文件trust.txt和ratings.txt,trust.txt是用户信任度数据文件,共1853条数据,ratings.txt是用户项目评分数据文件,共35497条数据,用户671个,项目1508个。 # 三、个性化社交网络协同过滤推荐系统开发过程介绍 本系统使用SSH开发框架,mysql数据库,主要代码如下图所示: 1、applicaitonContext.xml配置文件
![76809c5529b436b9f9607d0325514d6f.png](https://i-blog.csdnimg.cn/blog_migrate/9d7b05824db9650d6f4f1e476cc23594.jpeg)
2、struts.xml配置文件
![26820c936900ec52ae8b2b8bd721e9c6.png](https://i-blog.csdnimg.cn/blog_migrate/5f73450625c21a9e5483c414797b6f3b.jpeg)
3、数据集处理工具类
![eb3c75584b6f0f8708253739d986fc4b.png](https://i-blog.csdnimg.cn/blog_migrate/3cac3ac389ccdd113a6da4b609463b5e.jpeg)
4、协同过滤推荐算法工具类
![873b5d71793025da7ed62f5eafe29533.png](https://i-blog.csdnimg.cn/blog_migrate/64c9775ae980758229de243784c222ca.jpeg)
5、KMeans聚类算法工具类
![a9c2e159ae975011ae84eb1b9561549f.png](https://i-blog.csdnimg.cn/blog_migrate/91d39d5e517671b4c02cc709bba081bb.jpeg)
6、mysql数据库
![df6bfc493e1bcb42dedf9422bd7b5f87.png](https://i-blog.csdnimg.cn/blog_migrate/9285ea3f352033febec393c9a8a1d1c4.png)
# 四、个性化社交网络协同过滤推荐系统协同过滤推荐算法介绍 本系统采用基于用户根据评分数据+聚类+信任用户数据填充提高信任用户相似度的推荐算法。 系统在启动后,会分页查找所有评分数据,并构建用户-项目评分矩阵,根据用户项目评分矩阵进行用户聚类(聚类算法的计算时间很长故在项目启动时运行,本聚类算法的初始中心点选择采用随机选择,随机选择对聚类的结果有影响,每次聚类结果都会不一样,也可更改其他参数影响聚类结果,最优聚类结果需要不断调试参数计算,可通过JunitTest类进行不断测试),用户在系统首页输入用户id,然后首先找到该用户所在的聚类中的簇,将簇中所有用户点构建成用户-项目评分矩阵,同时利用用户之间的信任度,将当前用户的信任用户填充进用户-项目评分矩阵,并填充当前用户的评分数据,如果信任用户对相同项目有评分,则不填充该项目评分,这样操作,用户与信任用户之间会有较高相似度,然后根据用户-项目评分矩阵计算当前用户的最近邻用户,最后就是推荐。 # 五、个性化社交网络协同过滤推荐系统推荐算法测评指标介绍 测评指标采用MAE平均绝对误差、recall召回率、precision查准率,算法的比较是四中介绍的算法与四去掉聚类算法的比较,经过多次计算添加聚类的算法的MAE、recall、precision都优于没有添加聚类的算法。 # 六、个性化社交网络协同过滤推荐系统实现结果介绍 1、系统首页
![5ef72e9ff9545f025415333900da9dbd.png](https://i-blog.csdnimg.cn/blog_migrate/afc49172d2ebc6cd1cc8a84cd967c02d.jpeg)
2、KMeans聚类结果1
![61838f8d2107a5cd3b5d05a45a182d0b.png](https://i-blog.csdnimg.cn/blog_migrate/4ebb65307e92009d9897a1324aae726c.jpeg)
3、KMeans聚类结果2
![a71ecd49054b09a45bade734d7ef931b.png](https://i-blog.csdnimg.cn/blog_migrate/d9bf5881dc99acbf9dda472471660492.jpeg)
4、推荐结果1
![32d65aa3de78f6a99f1a52aa3e63968a.png](https://i-blog.csdnimg.cn/blog_migrate/6f8cb804282ffeb561e929da7c200e19.jpeg)
5、推荐结果2
![d200e96d7e0cb44b5e5bf32d61e0a95a.png](https://i-blog.csdnimg.cn/blog_migrate/2c045cef7218e3d1ff0f320c14b06986.jpeg)
6、测评指标
![0d86c4f074c9d05a28cf88990418039f.png](https://i-blog.csdnimg.cn/blog_migrate/820a61cb30f46c1e566d0183a98543a5.jpeg)
作者专业长期研究各种协同过滤推荐算法,欢迎留言、私信互相交流学习,后续会不断更新不同的协同过滤推荐算法,欢迎关注。扣511873822