论文部分内容阅读
近年来,人们饮食观念由温饱向营养饮食转变。在转变过程中,由于饮食不合理导致人体出现健康问题,慢性疾病的发病患者和死亡人数逐年上升,普通健康人群应关注自身健康,健康饮食,将慢性疾病防患于未然。本文在线性用户模型的基础上,鉴于粒子群算法的优势,提出了基于粒子聚集离散程度的动态惯性权重,量化饮食推荐。提出KMSBCF组合推荐算法,为用户推荐偏好食材。该组合算法融合了聚类、Slope One、基于用户的协同过滤、偏好权重,其中偏好权重融合了用户饮食相关的时间因子、概率、食用频次。本文旨在针对普通健康人群的饮食,进行个性化的饮食推荐系统的研究,满足用户饮食偏好,以及饮食多样性的需求。首先,本文根据用户的性别、体重、身体活动水平等因素计算用户每日所需热量,根据营养素提供的热量配比,计算用户每日所需的各项营养成分。使用简化的用户营养模型,从偏差的角度对推荐的食材进行量化分析。将求解用户营养模型问题转化为偏差问题,再使用改进的粒子群算法寻找最优值,间接解决问题,同时保证推荐结果的多样性。对粒子群算法进行改进,使用基于粒子的聚集离散程度变化的动态惯性权重,通过仿真分析对比结果得出改进算法相较于普通粒子群算法,误差由5%降低到1%,达到最优值迭代次数减少200次,因此改进算法有更高的精确度和更高的效率。其次,对协同过滤算法进行了改进,提出KMSBCF组合推荐算法。该算法融合了聚类算法、Slope one、基于用户的协同过滤,偏好权重。其中偏好权重融合了用户饮食相关的时间因子、概率和食用频次。使用MovieLens数据集验证了组合算法,并与基于用户的协同过滤和基于项目的协同过滤的推荐结果进行了对比,通过对比三种算法的平均绝对误差,KMSBCF算法比另外两种算法的平均绝对误差值最少低出0.6,组合推荐算法有更准确的推荐效果,更能反映用户的近期偏好。最后,搭建设计一款饮食推荐系统,包括前端展示,后台、数据库。平台采用现阶段比较热门的技术框架,前端使用Vue框架、后台使用Express框架、数据库使用mongoose,实现为用户每日推荐偏好饮食。本文基于营养饮食推荐系统的研究,不仅满足普通健康用户的营养需求,还为用户提供多样化的方案,同时满足用户近期的偏好,为用户提供适合的饮食推荐。