第56件事 排行榜通用算法4步

自从跟随师傅学艺之后,也爱上了看书,比较好奇,各大电商网站的图书排行榜排名到底是依据什么因素或维度来排列的?怎么样的排名算法算是比较科学的呢?有没有比较通用的算法?师傅肯定有方法。还真是,咨询师傅后,得知还真有通用的排名算法。

通用型的排行榜算法一共分为四步:第一步明确影响排行榜的维度或因素;第二步将每个维度或因素的数值标准化;第三步确定每个维度或因素的权重比;第四步计算综合评分后进行排名。

我们以一个具体的实例来阐述一下。假设现在有20个苹果供用户白吃或试吃,游戏规则是团长通过微信好友或朋友圈一起来组团抢苹果的白吃资格。假设现在有三个团长参与了组团,我们按照上述的四步法一一拆解:
第一步:组团能否获得白吃资格,主要维度或因素有:组的团里未曾获得白吃资格的用户数、组的团里之前获得白吃资格并写过点评的用户数、组团总人数、组团提交时间、团长等级(所获得的虚拟点数)。
第二步:将各个维度或因素的数值标准化,标准化主要有max-min标准化和z标准化,我们这里采用前者,公式为(x-min)/(max-min),组团提交时间采用(max-x)/(max-min),因为组团提交时间越早越容易获得白吃资格。标准化评分=所有数据标准化评分*100,这样就转化成百分制了。
第三步:确定每个维度或因素的权重比。那么如何确定呢?假设现在有ABCD四个维度,我们确定权重的步骤:第1步简化为1/0式逻辑思维;第2步专家投票表决,纵轴比横轴重要填“1”,反之填“0”;第3步将每行数字相加,根据合计的数值进行排序,矩阵分析如图7-18所示。

因为合计中可能存在数值为0的情况(比如图7-18中所示表格的D行),为了便于计算,我们认为将合计中每一项数值+1。

通过公式得出A的权重=3/10×100%=30%,B的权重=4/10×100%=40%,C的权重=2/10×100%=20%,D的权重=1/10×100%=10%。
当然了也可以根据实际需要,做成权重比可自定义配置,这样更加灵活。
第四步:综合评分=组团未白吃人数的标准化评分*对应权重+组团点评人数的标准化评分*对应权重+组团总人数的标准化评分*对应权重+组团提交时间的标准化评分*对应权重+团长等级的标准化评分*对应权重,团长排行榜最终结果如图7-19所示。

刚听完师傅传授的秘诀,隐隐约约感觉用到了一些之前已经学过的数据分析知识和技巧。顿悟了,原来综合使用了数据标准化评分和确定权重矩阵分析的方法。

产品经理不要为了学东西而学东西,真正理解后,很多复杂的问题即可迎刃而解,正是使用了数据标准化评分和确定权重的矩阵分析方法,综合一下就成了排行榜的通用算法。涉及排名的地方,只要轻松变换维度,就可轻而易举得出排名结果,这才是真正的学以致用。

原文地址:https://www.cnblogs.com/SanMaoSpace/p/9445485.html

时间: 2024-10-13 01:39:22

第56件事 排行榜通用算法4步的相关文章

产品心经:产品经理应该知道的60件事

序言1.产品经理必须系统掌握与产品&运营相关的知识和技能,再加上对行业深刻的理解,对用户人性的洞悉,对资源的高效利用,整合天时.地利和人和,产品才有可能成功.2.产品经理的尊严存在于所负责研发和运营的产品中:产品经理的调性.气质.品位.哲学观和内涵也蕴藏在其锁负责的产品中.产品是产品经理的一面镜子.也可以将产品比喻成一个活生生的人,人如产品,产品如人.3.当产品经理把产品研发和运营都当成一个有机生命体来对待的时候,他就会豁然开朗了.当他意识到产品具备某种魔力,而这种魔力是用户根本无法抗拒和割舍的

转行做程序员之前必须考虑的三件事

2013-2014年间,全世界吹起一阵写代码的风潮,各大媒体疯狂报导,鼓吹年轻人不管所学为何,一定要学写程序.时不时就会看到“程序员是最有钱途的工作之一!”或者“连奥巴马都开始写代码,你能不开始吗?”这类的文章,不管金钱诱惑.名人带头,仿佛全世界都在疯狂的做程序.就算到了2015年底,不时仍有这类文章出现.相对之下,许多人认为自己目前工作很糟糕,包括老板高压统治.工作内容乏味.薪水仅能糊口等等,看到文章里头那些“高薪”.“非凡成就”.“热门职缺”的字眼,是不是都想转行呢?今天就整理一些建议给大家

转行做程序员之前你应该考虑的三件事

2013-2014年间,全世界吹起一阵写代码的风潮,各大媒体疯狂报导,鼓吹年轻人不管所学为何,一定要学写程序.时不时就会看到「程序员是最有钱途的工作之一!」或者「连奥巴马都开始写代码,你能不开始吗?」这类的文章,不管金钱诱惑.名人带头,仿佛全世界都在疯狂的做程序.就算到了2015年底,不时仍有这类文章出现.相对之下,许多人认为自己目前工作很糟糕,包括老板高压统治.工作内容乏味.薪水仅能糊口等等,看到文章里头那些「高薪」.「出国工作」.「热门职缺」的字眼,是不是都想转行呢?今天就整理一些建议给大家

关于 Java 对象序列化您不知道的 5 件事

数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处. 关于本系列 您觉得自己懂 Java 编程?事实上,大多数程序员对于 Java 平台都是浅尝则止,只学习了足以完成手头上任务的知识而已.在本 系列 中,Ted Neward 深入挖掘 Java 平台的核心功能,揭示一些鲜为人知的事实,帮助您解决最棘手的编程挑战. 大约一年前,一个负责管理应用程序所有用户设置的开发人员,决定将用户设置存储在一个 Hashta

软件架构师应该知道的97件事

1.客户需求重于个人简历客户需求至上.为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违. 2.  简化根本复杂性 ,消除偶发复杂性根本复杂性指的是问题与生俱来的.无法避免的困难.偶发复杂性是人们解决根本复杂性的过程中衍生的.分析问题好比拨云见月.水落石出.架构师的责任在于解决问题的根本复杂性,同时避免引入偶发复杂性. 3.  关键问题可能不是出在技术上大多数项目是由人完成的,人才是项目成败与否的基础.学会尊重他人,给予团队成员充分的信任,是聪明的架构师获得成功必须掌握的核心技能.团队同心,

在开发第一个Android应用之前需要知道的5件事:

你能否详细讲述一下,在开发Android应用过程中每一阶段要用到的技能和编程语言? 建立一个Android应用程序可以归结为两个主要技能/语言:Java和Android系统.Java是Android的通用编程语言,但是Android还包括学习用于app界面设计的XML语言,学习Android概念,以及从Java编程角度运用这些概念. 学了Java和XML之后,再用Android理念将两者连接起来. 我也有分享过一些学习Activities和 Fragments等的Android相关知识.我最喜欢

新手学习SEO要做的七件事是什么?

学习SEO可能不那么先进的编程,学习SEO不可能掌握网页设计,学习SEO不需要学习SEO DIV + CSS;不是一个困难的任务,但是在学习过程中,如果你想掌握SEO,那么我们要做的几件事. 1.学习SEO需要持之以恒的精神.为什么 ?学习SEO要有持之以恒的精神?SEO是一个长期的工作,因为它是与搜索引擎这个工作密切相关,搜索引擎收录站点,将继续增加网站的权重,可以提高网站关键词的排名,这是一个不变的算法.所以即使我们有一个强大的SEO技巧,我们仍然需要更新网站内容,不断优化网站的布局,继续发

有理想的程序员必须知道的15件事

作为程序员,要取得非凡成就需要记住的15件事. 1.走一条不一样的路 在有利于自己的市场中竞争,如果你满足于"泯然众人矣",那恐怕就得跟那些低工资国家的程序员们同场竞技了. 2.了解自己的公司 以我在医院.咨询公司.物流企业以及大技术公司工作的经验来看,这一点所言不虚. 不同公司的运营模式差异极大.如果你理解企业的运营模式,那你就不一样了!在这家公司中(或者对客户而言),你是参与业务运营的资产,你的工作能直接产生效益! 3.与最优秀的人为伍 很早以前,我喜欢打篮球,被分配到一个水平比较

关于垃圾回收被误解的7件事

转自:http://www.importnew.com/15796.html 对Java垃圾回收最大的误解是什么?它实际又是什么样的呢? 当我还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了.但他们不知道的是,清理垃圾实际上是很棒的一件事.可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因——包括它们怎样工作.GC是如何影响程序运行和你能对它做些什么.因此我们找到了Java性能调优专家Haim Yadid,并把名为Java performance tuning