基于贝叶斯估计的茶饮数据推荐算法
2022-08-31周渝
摘要:该文采用Python爬虫技术获取相关茶饮数据,这种数据获取技术能够多维度地及时了解到茶饮消费的现状。目前实现的是爬取美团网上的茶饮数据,并存入CSV文件以供下一步的数据分析使用。在Python的相关库,如pandas、numpy以及贝叶斯估计推荐算法的加持下,能科学地得出相關的茶饮店铺推荐情况,从而给予消费者以及企业极大的参考价值。该文对从网页端获取到的茶饮数据,如茶饮店铺名称、店铺详情、店铺评分、评价人数、人均消费等信息进行算法分析,研究了数据分析过程中的基本流程,以及贝叶斯估计推荐算法所蕴含的推荐原理.总结了从数据源头的收集,到存储直至分析应用,最终挖掘出数据价值的过程,整个分析结果为用户及企业奠定了科学选择的基础。
关键词:Python爬虫;数据分析;贝叶斯估计;推荐算法
中图分类号:TP315.69 文献标识码:A
文章编号:1009-3044(2022)17-0012-03
1引言
在相当长的一段时间里,人们都是通过传统的线下交易来进行物品之间的买卖。而随着互联网的发展,再到移动支付的应运而生,用户通过线上购物的消费方式已越发普遍。以茶饮产品为例,人们可以足不出户地了解这些茶饮商品的信息,在线上进行购买,或是先在线上了解商品详情,再到实体店进行体验并消费,减少了资源浪费,对于企业以及用户可谓是双赢的局面.长此以往,线上消费便产生了大量的消费数据,将数据进行收集、管理、分析及应用将会发掘出数据背后所蕴藏的巨大价值[1]。以往传统的茶饮销售报表已经不能很好地满足数据分析的需要,在数智时代使用先进的数据分析技术对数据进行有效利用已然成为了新时代的机遇与挑战。对于茶饮行业而言,消费者如何从海量的数据中找到性价比较高的茶饮店铺,企业如何根据茶饮市场的现状做出抉择,成为现如今需要思考的一个问题。
2数据获取
目前针对国内的茶饮市场数据分析主要来自国家统计局以及智研咨询,除了这两者便是各大茶饮企业的销售数据。但是其中存在着一些问题,对于国家统计局以及智研咨询来说,虽然其数据规模较为庞大,能对中国茶饮行业的未来做出相应的预测,但对于消费者而言,更多关注的是时下茶饮店铺的具体情况,因为他们需要了解的信息只有所处区域附近茶饮店铺的价格情况、服务质量、口碑等[2]。而关于茶饮行业将来的发展走向,消费者可能不会过多关注。而对于这些茶饮企业而言,他们能借助现有宏观数据对茶饮市场未来发展趋势有一定的预见,但是这些数据都过于笼统,缺乏具体的影响因素。其次,茶饮市场中的品牌众多,这导致某一品牌茶饮企业只有自己企业的茶饮数据,而不具备其他茶饮品牌的数据,无法找到和其他茶饮企业的异同。以上这些问题导致消费者在短时内无法找到适合自己的茶饮产品,而企业也很难发现其面临的具体问题,这便给决策带来了些许的障碍[3]。
2.1 新型数据获取方式
本文中的茶饮数据获取方式将采用Python爬虫技术,所谓的互联网爬虫(网络爬虫),就是可以自主获取网页上内容的程序,又可以将它称为网页蜘蛛,或者是称为网络机器人[4]。它是一种脚本或者程序,依照特定好的规定,自主获取网页上的各种信息。在特定网页分析算法的加持下,能将部分与目标链接无关的信息过滤,智能选择抓取网页URL,可见在现如今数据获取方面,Python爬虫技术相较于传统的数据获取方式更加具有价值和优势[5]。
本文中茶饮数据的获取采用的便是Python爬虫技术,首先要确定茶饮数据来源的网站,然后利用Python的requests库发起URL请求,导入CSV库,将返回的茶饮数据保存至CSV文件以供下一步的分析使用。同时还需引入time库,设置每3秒请求一次,从而缓解服务器的压力[6]。
2.2 茶饮数据获取
本文的茶饮数据来源于美团网,数据规模涵盖了全国的各大城市:北京、上海、广州、深圳、天津、西安、重庆、杭州、南京、武汉等几乎所有茶饮店铺数据,共计11000余条。实验所需要用到的数据包含了茶饮店铺名称、店铺详情、店铺评分、评价人数、人均消费等信息,数据获取结果如图1所示。
3 数据获取
针对获取到的茶饮数据,对这些数据进行分析时,先将数据进行清洗,再结合贝叶斯估计算,通过构建相应算法模型,能在数据分析的基础上,对数据结果做出科学的推荐。
3.1 新型数据获取方式
贝叶斯估计(Bayesian estimation)的基本思维基于的是贝叶斯定理,为了得到新的概率,要把先前的先验概率与新的证据一并结合起来。当需要计算假设的概率时,就可以利用贝叶斯估计的方法。这个方法会用到之前假设的先验概率,然后可以通过这些假设的先验概率,从而观测到数据本身,以及不同数据所对应的概率[7]。贝叶斯定理的表达式可以写成以下公式:
其中,公式里面的H代表的是假说,其概率可能会遭到实验所产生数据的影响。E为实验所产生的数据,实验数据对应的是新的数据,即未用于计算先验概率的数据。先验概率为P(H),在观察到数据E以前,假说H的概率。P(H|E)为后验概率,是在给定一个实验研究数据E之后,假说H的概率。P(E|H)是假设H成立时发生E的概率。当H不变时,这是E的函数,也称为似然函数,表示假设与给定假设的证据之间的相容程度[8]。似然函数为实验过程中数据E的函数,而后验概率则为假说H的函数。有的时候也会称P(E)为边缘似然率。这个系数对所有可能的假设都是常数,所以它不用来确定不同假设的相对概率。贝叶斯估计最关键的点是可以通过利用贝斯定理进行结合新的证据及以前的先验概率,来得到新的概率[9]。贝叶斯估计能够迭代使用:观察到一些证据后得出的后验概率可以作为先验概率,而后按照新的证据得到新的后验概率。所以,贝叶斯定理能够应用于许多不同的证明,无论它们是否同时出现,这个过程称为贝叶斯更新[10]。基于贝叶斯估计原理,结合前面获取到的相关茶饮数据,便可以构建基于贝叶斯估计的推荐算法模型。
3.2 基于贝叶斯估计的推荐算法
构建基于贝叶斯估计的推荐算法,公式如下:
其中,V代表的是某一个茶饮店铺参与评价的消费者数量。M则是筛选出来的消费者评价个数的阈值,即如果某家店铺评价的个数低于该阈值,则该茶饮店铺将被忽略。该店铺的评分为R,所有茶饮店铺评分的均值用C表示。M的取值能够按照实验的目标自由地選取,在本文的模型中,采用的是90分位值,也即是只选取评价人数为前10%的茶饮店铺进行分析推荐。
3.3 基于贝叶斯估计的推荐算法结果
导入全国茶饮数据,根据基于贝叶斯估计的推荐算法模型从而科学地得出茶饮店铺推荐Top10。推荐算法结果如图2所示。
从模型的运算结果可以看出,通过基于贝叶斯估计的推荐算法,能根据茶饮数据重新计算出每一个茶饮店铺的综合得分,从而基于此得分对茶饮店铺进行相关排序。本文中只取出排序Top10的茶饮店铺,同时返回茶饮店铺的基本信息。对于用户而言,还可以点击相应店铺详情链接进行深入地了解。
3.4 实验结果数据准确性验证
对于贝叶斯估计推荐算法给出的结果,是否科学合理,需要通过实验数据的对比分析来进行相关验证。基于贝叶斯估计推荐算法,上文中已将全国的茶饮店铺数据一起导入到算法模型中,得出全国的茶饮店铺推荐Top10。现在不妨将每个城市的茶饮店铺数据分别导入到算法模型中,此时,便得到了每个城市其对应的茶饮店铺推荐Top10。再将这些城市其对应的茶饮店铺推荐Top10合并到一起,得到了一个新的数据集。在这个数据集中,每一个茶饮店铺总会属于某一个城市的茶饮店铺推荐Top10。现在将这个包含了全国各自城市茶饮店铺推荐Top10的数据集,再重新导入到算法模型中,得出了基于贝叶斯估计推荐算法新的推荐结果,如图3所示。
为了比较这两种基于同一算法模型,不同方式的推荐结果,现将全国茶饮店铺推荐Top10结果和各个城市茶饮店铺推荐Top10数据集推荐结果放在一起进行对比,如图4所示。
从结果对比可以看出,同一算法模型下,两种推荐方式的结果发生了变化,推荐结果中,Top10的茶饮店铺里,50%的茶饮店铺是一致的,那么能否说明算法缺乏准确性,答案是否定的。源于算法模型的逻辑,上文提到,采用的是90分位值,也即是只选取评价人数为前10%的茶饮店铺进行分析推荐。第一种推荐方式,数据集为全国茶饮店铺数据,数据规模庞大,而第二种推荐方式中,先是对各个城市的茶饮店铺数据进行推荐,数据规模相对全国而言较小。受算法模型中分位值的影响,故推荐结果产生了些许偏差,为了进一步探究其推荐结果的可靠性,现进一步验证。
3.5 实验结果数据科学性验证
对于上文中的第二种推荐方式,首先会得到包含了全国各个城市茶饮店铺Top10的数据集,再导入到算法模型中,得出相应的推荐结果。由于这个数据集来源于全国各个城市的茶饮店铺在算法模型推荐下的结果,产生了相应的茶饮店铺综合得分。于是,现在不将这个数据集导入到算法模型中,而是仅凭相应的茶饮店铺综合得分对数据集进行倒叙排列,挑选出Top10的茶饮店铺数据,再将结果与全国茶饮店铺推荐Top10进行对比,我们发现结果是完全一致的,这也验证了上文中不同方式推荐结果偏差受到了算法模型中分位值的影响这一结论,如图5所示。
然而,仅凭相应的茶饮店铺综合得分对数据集进行倒叙排列,挑选出Top10的茶饮店铺进行推荐,结果是否一定科学,需再一次进行分析验证,现将结果与在算法模型下的推荐结果进行对比分析,结果如图6所示。
从对比的结果中可以看到,如图6中的上表中,仅凭相应的茶饮店铺综合得分对数据集进行倒叙排列后,排在第一与第二的茶饮店铺评分均为5.0,而排在第一的茶饮店铺评价人数为5502,排在第二的茶饮店铺评价人数为5716,很显然,茶饮店铺评分相同的情况下,评价人数相对较少的茶饮店铺却排在了第一,这显然是不科学的。而在贝叶斯估计推荐算法模型的加持下,对数据进行宏观把控,微观分析,重新计算综合得分,再进行相应推荐,将这样不科学的结果纠正了过来,如图6中的下表所示。至此,贝叶斯估计推荐算法模型的科学性得以验证。
4结束语
基于规模较大的实验数据以及反复的实验对比分析,足以看出贝叶斯估计推荐算法逻辑严谨,在准确性与科学性方面表现较为出色,算法模型的可靠性能得到很大程度的保证。通过贝叶斯估计,构建相应的算法推荐模型,有利于对数据进行科学的分析,为用户提供高质量的选择。使得用户可以在海量的茶饮店铺中找到真正性价比高的茶饮店铺进行消费,从而极大地提高了消费体验。同时也为企业的决策指明了方向,可以一窥企业自身的不足,而依据推荐结果,取其精华,加以改进。
接下来的研究工作是对算法进行优化,或者重新构建相关算法模型,加入更多数据的影响因子,以便得出更加精准的推荐结果。既能提升算法执行的效率,又能确保推荐结果的准确性。同时,数据的获取虽然可靠性能得到保障,但是更新数据却需要定期自主更新,在效率上并不是很高。并且数据规模不是很庞大,难以在短时间内发掘更多的数据价值。后续可以在修改爬虫代码的基础上,结合云服务器,从而让这些数据能够定时地实现自主更新。此外,结合机器学习中的相关理论模型,对相应茶饮数据进行拟合预测,也是一个极具价值的研究方向。
参考文献:
[1] 韩文煜.基于python数据分析技术的数据整理与分析研究[J].科技创新与应用,2020(4):157-158.
[2] 蒋敏.新式茶饮行业发展现状与未来展望[J].农业考古,2021(2):221-227.
[3] 俞沅沅.浅析中国新式茶饮产业[J].商场现代化,2021(23):23-25.
[4] 陈乐.基于Python的网络爬虫技术[J].电子世界,2018(16):163,165.
[5] 徐恒.社会化网络数据获取技术研究与实现[D].长春:吉林大学,2016.
[6] 于大海,张岩.浅谈HTTP服务器的设计与实现[J].教育教学论坛,2012(S1):232-234.
[7] Guan Q,Tang Y C,Xu A C.Reference Bayesian analysis of inverse Gaussian degradation process[J].Applied Mathematical Modelling,2019,74:496-511.
[8] Bennun L.An “ad-hoc” modified likelihood function applied to optimization of data analysis in atomic spectroscopy[J].Measurement,2018,116:140-145.
[9] 邓柙.基于先验概率与随机参数改进神经网络模型及应用研究[D].成都:四川师范大学,2021.
[10] 魏炜,申金升.基于贝叶斯更新的供应链协同预测模型研究[J].预测,2010,29(5):68-73.
收稿日期:2022-03-16
作者简介:周渝(1997—),男,四川巴中人,学士,主要研究方向为计算机科学与技术。