用户投票算法随手记

2024-04-09 23:18
文章标签 算法 用户 投票 随手

本文主要是介绍用户投票算法随手记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【随手记。 请点进原文看。。。。原文写的好好啊好好的偷笑


前四篇与发布时间有关:


(1)基于用户投票的排名算法(一):Delicious和Hacker News

http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html

前者通过没60min更新一次最近被收藏的数目,以此来排名。

在 被收藏数目(得票数目)的基础上加入了帖子的发帖时间,已解决Delicious不能让新帖子浮上来的问题。score = ( P- 1) / (T +2)^G 首先它排除了发帖人的票数,然后,它的时间因素考虑到了帖子刚刚发···而导致分母过小的问题(+了一个平均时间)。还考虑了时间导致的帖子的分衰减速度问题:重力因子G。


(2)reddit:  在 赞成 的 基础上,引入了  反对 。

考虑了:

帖子的发帖时间: t = 发帖时间 - 某个固定值。 (帖子越早发,这个值越小)

赞成与反对的差值: 

投票方向 1:赞成多 , 0:一样多,   -1:反对票多。

帖子的受肯定程度 (否定程度) z 。是个底数为10的对数形式的,说明帖子越往后 如果突然有一部分人投一样的票  就不会很会受影响了。


(3) stackof  overflow  :不光考虑到了   赞成 和  反对  两个因素。还考虑到了帖子被浏览的次数,被回答的次数,问题得分,回答得分,发帖时间,最后一个回答的时间 等。【帖子本身质量、用户参与度、时间】


(4)把牛顿冷

却定律  Newton‘s law  of  cooling   应用到排名貌似很cool : http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_newton_s_law_of_cooling.html

定律内容: 物体的冷却速度与                它当前的温度和室内温度的差值    成正比。


后(5)

与时间无关: http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_wilson_score_interval.html

不是简单的用 好评数 - 差评数, 或 好评率 来评判某个帖子是否热门。 引入了  置信区间 。又由于 置信区间不能很好的解决 小样本 的问题,又提到了  威尔逊 区间。


贝叶斯平均法:  http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_bayesian_average.html

IDMB采用的方法。

它借鉴了"贝叶斯推断"(Bayesian inference)的思想:既然不知道投票结果,那就先估计一个值,然后不断用新的信息修正,使得它越来越接近正确的值。

它可以解决 被关注比较少的帖子 排名不公平的问题。。。因为 这类型的帖子 使用上述置信区间的话,由于样本比较少,置信区间的跨度都比较大,下限也大,所以采用上面(5)的方法的话,最后结果不怎么对它有利

















这篇关于用户投票算法随手记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889486

相关文章

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为