基于用户的协同过滤推荐算法原理、过程、代码实现 基于用户项目评分的协同过滤推荐算法程序 余弦、修正余弦、person皮尔森算法、欧几里得距离公式等相似度算法 movielens电影评分数据集

本文主要介绍基于用户的协同过滤推荐算法的推荐原理、推荐过程、代码实现。

一、基于用户的协同过滤推荐算法推荐原理

基于用户的协同过滤推荐算法是协同过滤推荐算法中最简单、最传统的推荐算法,是根据用户对项目的某一种操作行为,为目标用户找到操作行为相同或者相似的用户,这些操作行为相同或者相似的用户称之为目标用户的近邻用户,然后在这些近邻用户中找出目标用户没有操作行为同时近邻用户同时有操作行为的项目,最后将这些项目推荐给目标用户,作为目标用户感兴趣的项目。

二、基于用户的协同过滤推荐算法推荐过程

基于用户的协同过滤推荐算法推荐过程可分为四个步骤:构建用户-项目操作行为矩阵、计算用户之间似度、得到目标用户的TopN最近邻居、获取推荐结果。

1、构建用户-项目操作行为矩阵

我们以用户对项目的评分数据为例,M个用户和N个项目最大有M*N条用户对项目的评分数据,记为矩阵MN,在计算机语言中可以通过一个二维数组来表达array[M][N],用户用数组下标0-M表示,项目用数组下标0-N表示,矩阵MN图形如下所示(0表示用户对项目没有评分):

评分 0 1 2 3 4 5 N
0 1 0 5 2 0 3 5
1 5 2 4 0 0 0 0
2 2 5 3 4 2 1 4
3 0 4 0 0 4 1 2
M 3 0 4 2 3 2 1

用户-项目评分矩阵可适用于用户-项目浏览记录矩阵、用户-项目浏览时长矩阵、用户-项目播放次数矩阵、用户-项目播放时长矩阵、用户-项目收藏记录矩阵(矩阵中的数据为0没有收藏,1已收藏)等用户-项目操作行为矩阵。

2、计算用户之间相似度

根据用户-项目评分矩阵计算用户之间的相似度有很多种算法,例如余弦算法、修正余弦算法、person皮尔森算法、欧几里得距离公式等算法,这些算法公式很固定,比较简单不再详述,可在百度百科中学习,其中根据用户-收藏记录矩阵计算用户之间的相似度需要用到谷本系数算法,该算法主要计算用户之间对项目是否有相同的操作行为。

3、得到目标用户的TopN最近邻居

根据用户之间的相似度,可通过经典冒泡排序或者快速排序等排序方法,得到目标用户的TopN个最近邻用户。

4、获取推荐结果

为目标用户推荐的项目是TopN个最近邻居同时评分过的项目同时目标用户没有评分过的项目,推荐的项目有预测评分,预测评分等于最近邻居与目标用户的相似度乘以最近邻居对推荐项目的评分,然后所有乘积相加,最后相加之和除以最近邻居与目标用户的相似度之和,预测评分高的项目,目标用户越感兴趣。

三、代码实现

本文的实现代码以movielens电影评分数据为例,java语言开发。
下载地址:https://download.csdn.net/download/u011291472/11966084
该程序仅供学习和测试使用。

作者专业长期研究各种协同过滤推荐算法,欢迎留言、私信互相交流学习,后续会不断更新不同的协同过滤推荐算法,欢迎关注。

你可能感兴趣的:(基于用户的协同过滤推荐算法,机器学习,数据挖掘,深度学习,算法,java)