转自:http://www.solagirl.net/sorting-products-by-bayesian-average.html
做产品评测(Product Review Website)网站时会遇到如何对产品进行智能排序(smarting ranking or smarting rating)的问题。
假设有10款同类型不同品牌的电风扇,网站允许登录用户对这些产品进行评论和打分,为了让其他用户更快了解哪些产品是大多数用户认同的产品,哪些是不好用的产品,就要根据用户打分情况给产品排个序,让结果一目了然。
在亚马逊购物时,如果你要买一本php的书籍,书A 3人打分,平均分5.0;书B 10个人打分,平均分4.8;书C 50人打分,平均分只有4.5,你将如何选择?如果按照平均分排序,书A是最佳选择。
平时我们都有一种感觉,很多人去买,这个东西就更可信,只有一两个人说好,可能是托。所以我们需要借助众人的智慧,也就是说越多人打分,这个产品的评分就越可信,就应当获得更高的权重,这就是我们今天要说的综合打分人数和平均分的产品排序方法。
贝叶斯理论(Bayes’ theorem)可以理解为一个理想情况下的理智的人如何对一个结果的可信度给出答案。而贝叶斯平均值( Bayesian average)就是根据贝叶斯理论给出的一种计算平均值的方法。贝叶斯平均值公式如下:
C是一个常量,与数据集的大小成正比
m是数据集的算术平均值
n是数据集的总数
为每个产品计算贝叶斯平均值并以此作为排序的依据,我们有下面这个公式
BA = ((AvgNumOfRatingsForAll * AvgRatingForAll) + TotalRating) / (RateCount + AvgNumOfRatingsForAll)
两个在计算过程中不变的值
AvgNumOfRatingsForAll – 所有列出的产品打分次数的平均值
AvgRatingForAll – 所有列出产品的分数平均值
两个针对某个产品的值
TotalRating – 某产品所有评分的总和
RateCount – 某产品所有评论数的总和
以书ABC为一个数据集合为例。
AvgNumOfRatingsForAll = 21
AvgRatingForAll = 4.571 书名 打分次数 平均打分 TotalRating 贝叶斯平均
A 3 5.0 15 4.625
B 10 4.8 48 4.645
C 50 4.5 225 4.521
计算结果表明虽然书A拥有最高平均分,但结合打分次数后书B是最佳选择。
常数C越大,则给予打分次数的权重越高。假设产品添加的频率不高,在其他产品已经有很多打分次数的情况下新产品被添加,会被排的很靠后,为了保持公平,可以适当降低C,假设是0.75,则公式变为:
BA = ((AvgNumOfRatingsForAll * 0.75 * AvgRatingForAll) + TotalRating) / (RateCount + (AvgNumOfRatingsForAll * 0.75))
根据此公式的计算结果为书名 打分次数 平均打分 TotalRating C=0.75的贝叶斯平均
A 3 5.0 15 4.640
B 10 4.8 48 4.660
C 50 4.5 225 4.517
比较发现打分次数较少的产品贝叶斯均值有所提升,打分次数较多的则稍有下降
结论:以贝叶斯平均为依据的排序更能反应真实的情况,打分次数多且评分较高的产品会更加靠前,打分次数多评分较低的产品也会更加靠后,与单纯依据每个产品的平均分排序相比,这种结果更有意义。
分享到:
相关推荐
基于贝叶斯的图像分割,使用贝叶斯决策对图像进行分割
基于贝叶斯方法的决策树分类算法 基于贝叶斯方法的决策树分类算法
基于贝叶斯算法的爬虫方法,充分利用贝叶斯网的优势,实现爬虫
(基于python的毕业设计)基于贝叶斯网络的城市火灾预测方法(源码+说明+演示视频),本科毕业设计高分项目。 【项目技术】 python+Django+mysql 【实现功能】 采用贝叶斯网络的方法为开展城市火灾预测、利用贝叶斯网络...
基于贝叶斯算法的图像像素分割,并可视化分割结果。matlab程序
针对传统基于贝叶斯的显著性算法通常采用固定窗口的形式,适应性较差的特点,提出了一种基于贝叶斯理论的自适应显著性检测算法,该算法能够考虑到不同图像显著物体大小不同。首先采用Canny算法提取图像边缘,并利用...
【源码】基于贝叶斯优化的LSTM时间序列预测.zip
此程序用c++编写,模式识别课程设计,基于贝叶斯分类的手写数字识别软件
【Matlab仿真】基于贝叶斯准则和最小平均错误概率准则的二元信号检测及性能分析,通过观察检测概率和虚警概率随着检测门限的变化而变化
基于朴素贝叶斯的分类方法研究,详细说明了贝叶斯分类算法及模型的应用。
为了提高多维分类的执行效率,同时保持高的预测准确性,提出了一种基于贝叶斯网络的多维分类学习方法。将多维分类问题描述为条件概率分布问题。根据类别向量之间的依赖关系建立了条件树贝叶斯网络模型。最后,根据...
基于贝叶斯攻击图的SDN安全预测方法.docx
基于贝叶斯定理的糖尿病检测系统的设计与实现.pdf基于贝叶斯定理的糖尿病检测系统的设计与实现.pdf基于贝叶斯定理的糖尿病检测系统的设计与实现.pdf
基于贝叶斯网络的推理在移动客户流失分析中的应用基于贝叶斯网络的推理在移动客户流失分析中的应用基于贝叶斯网络的推理在移动客户流失分析中的应用基于贝叶斯网络的推理在移动客户流失分析中的应用基于贝叶斯网络的...
该论文中详细介绍了基于朴素贝叶斯的垃圾邮件分类过程,以及五折交叉验证的评价指标,并包含完整的代码,python格式,是一个学习朴素贝叶斯方法不错的实例。
基于贝叶斯BP 神经网络的区间需水预测方法.pdf
基于贝叶斯估计方法的无线定位跟踪技术研究
基于贝叶斯BP神经网络的区间需水预测方法.pdf
针对民航突发事件因果关系无法有效评估与关联分析的问题,提出了一种基于贝叶斯网络的民航突发事件因果关系分析方法。在民航突发事件应急管理领域本体的基础上引入贝叶斯理论,通过规则设计实现了领域本体中概念、...