基于协同过滤的中药材推荐系统

该文介绍了使用Python爬虫获取中药数据,构建基于协同过滤的中药材推荐系统。系统通过用户和物品的协同过滤算法,结合余弦相似度和皮尔森相关系数计算用户和物品的相似性,提供个性化推荐。同时,系统具备数据分页展示、评分收藏功能及后台管理系统。
摘要由CSDN通过智能技术生成

基于协同过滤的中药材推荐系统


毕业了就写完!!

一、中药数据爬虫


常见的中药/医药数据库网站:
1、ETCM (tcmip.cn)
2、www.symmap.org
3、https://tcmsp-e.com/
4、TCMID - Database Commons (cncb.ac.cn)
5、中医药数据库 - 中医资源网 (tcmdoc.cn)
6、中药图典:中药图典/2 - A+医学百科 (a-hospital.com)
7、中华康网 (cnkang.com)
8、根茎类中药材_百草信息网 (caoa.net)
9、药材图谱_中国中医药网 (cntcm.com.cn)
10、中药词典_中医中药网 (zhzyw.com)
根据需要的中药数据选择可以实现爬虫的网站,得到中药数据集。

本中药材推荐系统数据来源于中国中医科学院上线的中药综合资源数据库ETCM,得到402味中草药的所属科、性味、外观、归经、适应症等属性。通过Python爬虫ETCM网站,获取中草药数据并保存为Excel文件。将原始爬虫数据经过切片等处理统一格式,得到中药数据如下所示。
在这里插入图片描述

二、推荐算法实现


1. 基于用户的协同过滤

基于用户的协同过滤算法作为推荐系统中最早出现且广泛应用的推荐算法,其出现标志推荐系统诞生,其思想是根据用户的历史行为数据所表现出的兴趣偏好找到与其兴趣偏好相似的用户群,再将用户群喜欢的且该用户没有历史行为的物品推荐给该用户[15]。简单来说,基于用户的协同过滤推荐是给用户推荐其相似用户喜欢且该用户没听说过的物品。如图2-2所示,目标用户A 喜欢物品1和物品3,用户B喜欢物品2,用户C喜欢物品 1、物品3和物品4,则与目标用户最相似的是用户C,然后系统就可以把物品4推荐给目标用户A。
在这里插入图片描述
基于用户的协同过滤算法主要包括两个步骤:找到和目标用户兴趣相似的用户集合、找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。本系统的用户偏好信息从用户对物品评分(1-5分评价)和用户喜欢物品行为获取。

2.基于物品的协同过滤

基于物品的协同过滤算法在2001年被提出,用于解决基于用户的协同过滤算法中数据稀疏性问题、用户量巨大带来的可拓展性问题。基于物品的协同过滤算法通过分析用户的行为记录计算物品之间的相似度,若两个物品之间具有较高的相似度,那么用户对未评分的物品可能存在某种偏好,因此推测用户的兴趣。简单来说,基于物品的协同过滤推荐是给用户推荐其喜欢过的物品的相似物品。如图2.3所示,喜欢物品1的用户大都喜欢物品3,则可以认为物品1、3具有较大的相似性,则系统可进一步将物品3推荐给同样喜欢物品1且没有接触过物品3的用户C。
在这里插入图片描述
基于物品的协同过滤算法主要包括两个步骤:计算物品之间的相似度、根据物品的相似度和用户的历史行为给用户生成推荐列表[1]。本系统采用的基于物品的协同过滤推荐算法从用户活跃度对物品相似度的影响和物品相似度的归一化方面进行改进。

两种算法优缺点对比
在这里插入图片描述

3.相似度计算

(1)余弦相似度
余弦相似度顾名思义就是通过计算两个空间向量的余弦夹角来测算相似度,衡量不同个体之间的差异,因为该算法较为简单且准确性也不错,在推荐系统中被应用的较为广泛。计算过程简单来说就是根据每个向量所在空间的坐标值将其绘制到坐标空间中,利用公式计算它们的夹角并得到该夹角的余弦值,可以通过余弦值来判断这两个向量之间的相似度。若计算出向量与向量间的夹角的余弦值在区间[-1, 1]内,则根据此结果推断出此公式适用于任一维度的向量。相似度越小,距离越大。相似度越大,距离越小。
在实际应用中余弦相似度需要计算的向量是多维的,如对于n维向量 A(x1,x2,x3…xn)、B(y1,y2,y3…yn)计算它们之间夹角的余弦值公式如所示。
在这里插入图片描述
通常在用户信息经过处理转化为字符串向量之后,再运用余弦相似度进行相似度计算。由于余弦相似度的一个缺点是在计算相似度的时候自动认为所缺失的值为0,常常被应用在计算文本的相似度、推荐系统中计算用户和商品相似度、聚类算法等领域。
(2)皮尔森相关系数
皮尔森相关系数本质是判断两个向量是否位于同一条线上,用皮尔森相关系数算法判断向量与向量之间的相关程度时,系数赋值范围为[-1,1],且绝对值越大表明向量与向量之间的相似性越大。基于自身特性,皮尔森相关系数有以下约束条件:变量必须是独立、连续且呈线性相关的,变量及其二元分布都服从正态分布。使用皮尔森相关系数来衡量用户间评分数值相似性时考虑了用户评分标准,计算得到的相似性经实验验证误差最小且推荐效果较好,所以选用具有低推荐误差的皮尔森相关系数来计算用户之间的相似度。
使用皮尔森相关系数计算用户相似度,令Iab表示用户a、b共同评过分的项目集,两者之间的相似性sim(a, b)利用皮尔逊相关系数的计算公式如下:
在这里插入图片描述
其中Ra,i指的是用户a对项目i的打分,R ̅_a是其打分向量的均值,Rb,i和R ̅_b亦同。

三、系统技术与实现


1. 数据库设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 中药材推荐系统

数据分页展示

在这里插入图片描述

推荐页面

系统推荐分为两种:一是当新用户登录系统,系统无用户浏览、收藏和评分数据,则系统推荐Top10的热门中药数据;二是有记录的用户,系统进行个性化推荐。
在这里插入图片描述
在这里插入图片描述

评分收藏功能

在这里插入图片描述

3. 后台管理系统


后台管理系统功能模块
在这里插入图片描述
前端页面

在这里插入图片描述

总结

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值