基于协同过滤算法的校园二手商城平台

简介: 基于协同过滤算法的校园二手商城平台

视频讲解

    最近给之前做的校园二手商城平台加了一个推荐算法,大家可以参考下面的视频以及下面的文字讲解。

基于协同过滤算法的校园二手商城

    经过调查,目前存在的推荐算法 目前,协同过滤、基于内容推荐和混合推荐三种算法在电商领域被广泛应用。本系统采用的是协同过滤算法,协同过滤算法分为基于用户的协同过滤算法以及基于物品的协同过滤算法,这两种的发展是根据实际情况不同逐渐演变的。


协同算法的历史


    协同算法是推荐系统中的一种常见算法,最早应该可以追溯到二十世纪六十年代。在那个时候,社会科学家和心理学家开始研究人们在不同情境下的行为,他们发现人们的决策往往受到周围人的影响。这种现象促使计算机科学家开始思考如何利用用户相似性来进行推荐。

    在1990年代末至2000年代初期,随着互联网的发展,电子商务网站迅速兴起,推荐系统的需求也越来越大,此时协同过滤算法逐渐成为一个研究热点。最具代表性的就是Netflix为了提高自己的推荐效果,发起的"百万美元推荐挑战赛",促进了推荐系统领域的技术突破和发展。之后,深度学习等人工智能技术的崛起,为推荐系统带来了新的可能性,例如使用基于神经网络的推荐算法,其中最具代表性的是Google推出的Wide&Deep模型和YouTube推出的DNN模型。尽管已经有了很多种推荐算法,但协同算法仍然是一个非常好的选择,并且在实践中被广泛应用。


协同过滤算法有那些分类


    协同过滤(Collaborative Filtering)是一种推荐算法,它基于用户行为数据(或收集的其它反馈信息),利用用户之间的相似性或物品之间的相似性来进行推荐。该算法分为两类:基于用户的协同过滤和基于物品的协同过滤。

    基于用户的协同过滤:首先计算用户之间的相似度,然后根据相似用户对物品的评分数据,对指定用户未评分的物品进行预测和排序,最后将预测得分高的物品推荐给该用户。这种方法的缺点是当用户数增加时,计算量会不断增加,而且存在“稀疏”问题,即用户对物品的评分数据往往是稀疏的。

    基于物品的协同过滤:首先计算物品之间的相似度,然后根据用户历史行为数据(如点击、购买、评分等)中涉及到的物品相似性,对用户没行为过的物品进行预测和排序,最后将预测得分高的物品推荐给该用户。这种方法相对于基于用户的协同过滤算法具有更好的稳定性和扩展性,但是需要预先计算物品相似度矩阵,而这个计算过程可能会比较耗时。

    除了以上两种常见的协同过滤算法,还有基于模型的协同过滤算法和混合方法等。基于模型的协同过滤算法通过建立模型来预测用户对物品的评分或行为,例如Matrix Factorization(矩阵分解)等;混合方法则将不同的算法和数据源结合起来进行推荐。


基于用户的协同过滤算法


关键点在于找到相似的用户 ,核心思想是人以群分,来给相似的用户推荐相同的商品,举例如下:

    从这个图中我们可以看出,用户A喜欢的物品有物品A,物品C;用户B喜欢的物品只有物品B;用户C喜欢的物品有物品A,物品C,物品D。我们可以看出用户A 和用户C的喜好很相似,因为其都购买了物品A以及物品C,这时候我们就可以把物品D推荐给用户A。

站在系统的层面考虑,主要是计算用户之间的相似度,就是如何计算和目标用户相似的人,

这个在下文有方法。


基于物品的协同过滤算法


    关键在于物品的相似,例如你购买了一件科比的篮球鞋科1,那么会为你推荐科比的科比4,根据物品的相似来进行一个推荐,下面是一个例子

    用户A喜欢的有物品A,物品C;用户B喜欢的有物品A,物品B,物品C;用户C喜欢的有物品A;物品A和物品C相似,我们就可以给用户C推荐物品C。

校园二手商城平台采用的是基于用户的协同过滤算法,下面讲解具体过程,基于用户的协同过滤关键点在于找到与你相似的人,下面讲解几种常用的计算相似度的方法


皮尔逊相关系数


计算X与Y的线性相关性:


    皮尔逊相关系数的取值范围,为[-1,1],其绝对值越接近1相关性越强,绝对值越接近于0,相关性越弱,相关系数小0时说明两个变量之间呈现负相关,大于0,则为正相关,对于相关性强度可以参考下表:

计算过程:

Cov(X,Y)为协方差,D(X),D(Y)为方差


有下面四个公式可以进行计算:

关于公式四,我进行简单的推导,过程如下:

欧式距离


    欧式距离(Euclidean Distance)是指在数学上欧几里得空间中两点间的距离,也称为欧几里得度量。它是指在多维空间中,两个向量之间的物理距离,是最常见的距离度量方法之一。欧氏距离定义为两个向量之间的欧几里得范数,即两点之间的直线距离。在二维或三维空间中,欧式距离可以直观的理解为两点之间的直线距离。

欧式距离公式为:

校园二手商城平台中用户之间相似度的计算是通过皮尔逊相关系数来计算的


系统实现


    上面说了相似度,那么用户的相似度,反应在代码层面就是两个用户都对物品的喜爱,这个喜爱,我们可以通过用户点击商品的详情,收藏商品以及购买商品反应出来。

这里我们建一个recommend表,表中记录用户的userid,商品的commid,以及score,得分就是用户对商品的喜爱度,


代码中浏览商品详情一次,我会把得分加一,这个也可自己设置


收藏商品一次,分值会加3



购买一次会加5分



这样通过记录用户的历史操作,在表中记录其对物品的喜爱,然后用根据表中其他的用品给其做推荐,推荐其还没购买的商品

用户刚登录或者没有登录的情况下,是猜您喜欢页面中是没有数据的,


具体的流程如如下所示;

结语


🔥一个人可以掌握知识,但只有与他人交流才能形成智慧。

🔥One person can acquire knowledge, but wisdom is formed only in the exchange with others.

🏆 我坚信人与人之间的差距是表面上是财富的差距,本质上是大脑中认知的差距,


我们下期再见。

相关文章
|
1月前
|
机器学习/深度学习 搜索推荐 算法
协同过滤算法
协同过滤算法
76 0
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
153 1
|
1月前
|
机器学习/深度学习 JSON 搜索推荐
深度学习的协同过滤的推荐算法-毕设神器
深度学习的协同过滤的推荐算法-毕设神器
41 4
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
90 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
2月前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
55 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
255 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
3月前
|
存储 SQL 消息中间件
B端算法实践问题之设计一套实时平台能力如何解决
B端算法实践问题之设计一套实时平台能力如何解决
40 1
|
3月前
|
编解码 算法 Linux
Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析
在对接Linux平台的RTSP播放模块时,需将播放数据同时提供给Python进行视觉算法分析。技术实现上,可在播放时通过回调函数获取视频帧数据,并以RGB32格式输出。利用`SetVideoFrameCallBackV2`接口设定缩放后的视频帧回调,以满足算法所需的分辨率。回调函数中,每收到一帧数据即保存为bitmap文件。Python端只需读取指定文件夹中的bitmap文件,即可进行视频数据的分析处理。此方案简单有效,但应注意控制输出的bitmap文件数量以避免内存占用过高。