推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的协同过滤算法的设计与实现

更新时间:2019-12-21 11:15:28 大小:3M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

协同过滤算法是推荐系统中最常用的推荐算法之一,该算法的关键是计算物品或用户的相似度,通常采用同现矩阵来实现,因同现矩阵是一稀疏矩阵,已有的一些推荐系统中通常采用二维数组来存放同现矩阵,利用第三方扩展库Numpy来计算推荐评分,时间空间效率相对较低,利用Python内置的序列字典来存放稀疏矩阵,自行编写相应的代码来求解推荐评分,可有效提高算法的时间、空间效率。


部分文件列表

文件名 大小
基于Python的协同过滤算法的设计与实现.pdf 3M

部分页面预览

(完整内容请下载后查看)
2019  
2
期
山东广播电视大学学报  
年第  
  
Python  
基于  
的协同过滤算法的设计与实现  
1
2
,
张玉叶 宿 超  
( 1.  
,
济南职业学院 山东 济南  
250014; 2.  
,
山东广播电视大学 山东 济南  
250014)  
: ,  
要 协同过滤算法是推荐系统中最常用的推荐算法之一 该算法的关键是计算物品或用户的相似度  
,
摘
,
,
通常采用同现矩阵来实现 因同现矩阵是一稀疏矩阵 已有的一些推荐系统中通常采用二维数组来存放同现  
Numpy Python  
内置的序列字典来存  
,
,
,
矩阵 利用第三方扩展库  
来计算推荐评分 时间空间效率相对较低 利用  
, , 、  
放稀疏矩阵 自行编写相应的代码来求解推荐评分 可有效提高算法的时间 空间效率  
。
: ; ;  
关键词 推荐系统 协同过滤 同现矩阵  
-
-
-
: 1008 3340( 2019) 02 0082 04  
文章编号  
: TP391. 1  
: A  
中图分类号  
文献标识码  
、
一 引言  
thon  
Numpy ,  
是一科学计算库 提  
的第三方扩展库  
, ,  
随着网络的飞速发展 网络信息飞速增长 人  
,
供了大量的数组及矩阵运算 因此很多推荐系统  
“ ” “ ” 。  
们面临着 信息过载 和 信息迷航 的问题 借助  
Numpy  
,
来实现协同过滤算法 但因协  
中都是利用  
,
于搜索引擎 人们可以从海量信息中查找到自己  
,
同过滤算法中涉及到的矩阵多是稀疏矩阵 采用  
。 ,  
所需的信息 但是 搜索引擎只适用于在有明确  
,
普通的二维数组存放存在大量的无效存储 空间  
,
需求的情况下帮人们查找信息 如果在没有明确  
,
利用率较低 同时利用  
Numpy  
扩展库也无法进行  
Python  
的内置序列字  
,
需求的情况下 搜索引擎则难以帮助人们有效地  
,
算法的优化 因此本文利用  
。 ,  
筛选信息 此时推荐技术应运而生 它通过研究  
,
典来存放稀疏矩阵 自行编制相应的代码来求解  
,
用户的兴趣偏好 自动建立起用户和信息之间的  
,
推荐评分 可有效提高算法的时间空间效率  
。
,
联系 从而帮助用户从海量信息中去发掘自己潜  
、
二 协同过滤算法  
。
在的需求  
协同过滤算法分为基于用户的协同过滤算法  
,
。
推荐系统是建立在海量数据挖掘基础上的  
和基于物品的协同过滤算法  
基于用户的协同过滤算法 简称  
过不同用户对物品的评分来评测用户之间的相似  
(
UserCF) ,  
通
它通过分析用户的历史数据来了解用户的需求和  
, 、  
兴趣 从而将用户感兴趣的信息 物品等主动推荐  
,
给用户 其本质是建立用户与物品之间的联系  
。
, 。  
性 基于用户之间的相似性做出推荐 简单说就  
、
常用的推荐算法主要有专家推荐 基于统计的推  
是给用户推荐和他兴趣相似的其他用户喜欢的物  
、 。  
荐 基于内容的推荐和协同过滤推荐等 其中协  
。
品
(
基于物品的协同过滤算法 简称  
ItemCF) ,  
通
同过滤推荐是推荐系统中应用最早和最为成功的  
。
算法  
过用户对不同物品的评分来评测物品之间的相似  
, 。  
性 基于物品之间的相似性做出推荐 简单说就  
协同过滤算法的关键是计算相似度及求解推  
,
荐评分 在计算时需要用到矩阵的一些运算  
。Py-  
。
是给用户推荐和他之前喜欢的物品相似的物品  
- -  
: 2019 01 03  
收稿日期  
:
作者简介 张玉叶  
( 1973—) , , : 。  
,
,
、 、  
女 硕士 济南职业学院计算机学院副教授 研究方向 网站建设 软件开发 大数据  
( 1970—) , , , 。  
男 硕士 山东广播电视大学高级工程师  
宿超  
82  
Python  
的协同过滤算法的设计与实现  
山东广播电视大学学报  
基于  
  
UserCF ItemCF  
(
)
二 具体实现过程  
算法和  
算法最主要的区别在  
推荐的是那些和目标用户有共同兴趣  
,ItemCF  
: UserCF  
1.  
于
数据预处理  
将数据集中的文件读入并进行一定的处理  
将用户评分记录及电影信息分别存入相应的字典  
,
爱好的其他用户所喜欢的物品  
荐那些和目标用户之前喜欢的物品类似的其他物  
,UserCF  
算法则推  
。
,
。
Python 3 。  
代码如图 所示  
品
因此  
应用于新闻推荐 微博话题推荐等应用场景 而  
ItemCF  
算法的推荐更偏向社会化 适合  
中
其
、
;
,
算法的推荐则是更偏向于个性化 适合应  
、 、  
用于电子商务 电影 图书等应用场景  
。
UserCF ItemCF  
,
算法和  
算法思想类似 其实现  
过程也基本类似 唯一不同的是一个是计算用户  
ItemCF  
,
,
,
相似度 一个是计算物品相似度 本文以  
算
。
法为例详细说明其具体实现  
、ItemCF Python  
实现  
三
的
(
)
一 数据准备  
,
以一组用户的观影记录作为测试数据集 共  
3
图
数据预处理代码  
,
包括两个数据文件 一个是  
rating.txt,  
存放的是用  
2.  
建立同现矩阵  
, 1 ,  
户对电影的评分记录 其数据如图 所示 每一行  
ItemCF  
(
算法的关键是计算物品 此处为电影  
)
3
用逗号分隔的 个数据项分别表示用户  
ID、  
电影  
, ,  
的相似度 相似度的计算方法有很多 在此直接以  
ID  
。
和评分  
,
同时出现的次数多少作为相似度的衡量 因此需  
M。  
要建立物品的同现矩阵  
:
建立过程如下  
step1:  
,
列出每个用户看过的电影列表 结果如  
4
。
图
所示  
4
图
用户看过的电影列表  
step2:  
求出每个用户的电影同现矩阵  
1,  
例对用户 其看过的电影有  
11、12、13,  
因此  
( 11,12) ( 12,11) ( 11,13) ( 13,  
在矩阵对应的位置  
1
图
评分数据  
11) ( 12,13) ( 13,12)  
1,  
处写上 其余为  
0。  
也即用  
movies.txt,  
另一个数据文件是  
存放的是电影  
1
5
的同现矩阵如图 所示  
。
户
, 2 ,  
信息 其数据如图 所示 每一行用逗号分隔的  
3
ID、  
电影名称和上映时间  
,
个数据项分别表示电影  
。
该数据文件主要用于推荐结果输出  
5
1
用户 的同现矩阵  
图
step3:  
,
将所有用户的同现矩阵相加 得到最终  
2
图
电影信息数据  
, 6  
的同现矩阵 如图 所示  
。
83  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单
  • 21下载积分 打赏60.00元   3天前

    用户:gsy幸运

  • 21下载积分 打赏70.00元   3天前

    用户:铁蛋锅

  • 21下载积分 打赏65.00元   3天前

    用户:xzxbybd

  • 21下载积分 打赏60.00元   3天前

    用户:jh0355

  • 21下载积分 打赏60.00元   3天前

    用户:w178191520

  • 21下载积分 打赏20.00元   3天前

    用户:jh03551

  • 21下载积分 打赏20.00元   3天前

    用户:sun2152

  • 21下载积分 打赏20.00元   3天前

    用户:kk1957135547

  • 21下载积分 打赏25.00元   3天前

    用户:w1966891335

  • 21下载积分 打赏20.00元   3天前

    用户:xuzhen1

  • 21下载积分 打赏15.00元   3天前

    用户:x15580286248

  • 21下载积分 打赏25.00元   3天前

    用户:pcb

  • 21下载积分 打赏20.00元   3天前

    用户:bhacker

  • 21下载积分 打赏15.00元   3天前

    用户:liqiang9090

  • 21下载积分 打赏25.00元   3天前

    用户:有理想666

  • 21下载积分 打赏15.00元   3天前

    用户:godbox

  • 21下载积分 打赏15.00元   3天前

    用户:aetek

  • 21下载积分 打赏5.00元   3天前

    用户:mulanhk

  • 21下载积分 打赏5.00元   3天前

    用户:JuneLin61

推荐下载