我应该如何排列这些“有用”的分数?

2024-01-18

在我网站上的用户生成的帖子下,我有一个类似亚马逊的评级系统:

   Was this review helpful to you: Yes | No

如果有投票,我会在该行上方显示结果,如下所示:

   5 of 8 people found this reply helpful.

我想根据这些排名对帖子进行排序。如果您按照从最有帮助到最没有帮助的顺序进行排名,您会如何排列以下帖子?

   a) 1/1 = 100% helpful
   b) 2/2 = 100% helpful
   c) 999/1000 = 99.9% helpful
   b) 3/4 = 75% helpful
   e) 299/400 = 74.8% helpful

显然,仅根据有用百分比进行排序是不对的,应该以某种方式将总票数考虑在内。是否有标准方法可以做到这一点?

UPDATE:

使用 Charles 公式计算 Agresti-Coull 下限并对其进行排序,以上示例的排序方式如下:

   1) 999/1000 (99.9%) = 95% likely to fall in 'helpfulness' range of 99.2% to 100%
   2) 299/400 (74.8%) = 95% likely to fall in 'helpfulness' range of 69.6% to 79.3%
   3) 3/4 (75%) = 95% likely to fall in 'helpfulness' range of 24.7% to 97.5%
   4) 2/2 (100%) = 95% likely to fall in 'helpfulness' range of 23.7% to 100%
   5) 1/1 (100%) = 95% likely to fall in 'helpfulness' range of 13.3% to 100%

直觉上,这感觉是对的。

UPDATE 2:

从应用程序的角度来看,我不想每次提取帖子列表时都运行这些计算。我想我要么按照定期的、cron 驱动的计划更新和存储 Agresti-Coull 下限(仅更新自上次运行以来收到投票的帖子),要么在收到新投票时更新它。


对于每篇文章,请设定您期望它有多大帮助的界限。我更喜欢使用 Agresti-Coull 间隔。伪代码:

float AgrestiCoullLower(int n, int k) {
  //float conf = 0.05;  // 95% confidence interval
  float kappa = 2.24140273; // In general, kappa = ierfc(conf/2)*sqrt(2)
  float kest=k+kappa^2/2;
  float nest=n+kappa^2;
  float pest=kest/nest;
  float radius=kappa*sqrt(pest*(1-pest)/nest);
  return max(0,pest-radius); // Lower bound
  // Upper bound is min(1,pest+radius)
}

然后取估计值的下限并对其进行排序。因此,2/2(由 Agresti-Coull 提出)有 95% 的可能性落在 23.7% 到 100% 的“有用性”范围内,因此它低于 999/1000,其范围为 99.2% 到 100%(因为 0.237

编辑:由于有些人似乎发现这很有帮助(哈哈),所以我要注意的是,可以根据您想要的自信/规避风险程度来调整算法。您需要的信心越少,您就越愿意放弃“经过验证”(高票)的评论,而选择未经测试但高分的评论。 90% 置信区间得出的 kappa = 1.95996398,85% 置信区间得出的结果为 1.78046434,75% 置信区间得出的结果为 1.53412054,完全谨慎的 50% 置信区间得出的结果为 1.15034938。

50% 置信区间给出

1) 999/1000 (99.7%) = 50% likely to fall in 'helpfulness' range of 99.7% to 100%
2) 299/400 (72.2%) = 50% likely to fall in 'helpfulness' range of 72.2% to 77.2%
3) 2/2 (54.9%) = 50% likely to fall in 'helpfulness' range of 54.9% to 100%
4) 3/4 (45.7%) = 50% likely to fall in 'helpfulness' range of 45.7% to 91.9%
5) 1/1 (37.5%) = 50% likely to fall in 'helpfulness' range of 37.5% to 100%

总体来说并没有什么不同,但它确实更喜欢 2/2 而不是 3/4 的安全性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该如何排列这些“有用”的分数? 的相关文章

  • 计算流数据的直方图 - 在线直方图计算

    我正在寻找一种算法来生成大量流数据的直方图 最大值和最小值事先未知 但标准差和平均值在特定范围内 我很欣赏你的想法 Cheers 我刚刚找到了一个解决方案 秒 从流式并行决策树算法构建在线直方图 论文的 2 2 该算法由 Hive 项目中的
  • 许可证密钥模式检测? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这不是真实情况 请忽略您可能认为适用的法律问题 因为它们并不适用 假设我有一组 200 个已知的有效许可证密钥 用于假设的软件许可算法
  • 指针 (*argv[]) 的指针的指针算术?

    我知道foo bar 等于 foo bar 但是什么是 foo bar 等于 例如访问 argv 2 我对这一点的理解有些困惑 我认为可能是这样的 foo bar 但我不确定 如果这是一个简单的答案 我深表歉意 a b 相当于 a b 由于
  • 计算标签云中标签字体大小的公式是什么?

    我有一个标签云 我需要知道如何更改最常用标签的字体大小 我需要设置最小字体大小和最大字体大小 您可以使用线性或对数评估与某个标签相对于最大标签关联的项目数量 将其乘以最小和最大字体大小之间的差值 然后将其添加到最小字体大小 例如 伪代码中的
  • 如何更改 Kotlin 上生成的 TODO() 函数体?

    我需要在我的代码上留下一些稍后要做的事情TODO 自动生成的会产生一个很长的评论 如下所示 TODO not implemented To change body of created functions use File Settings
  • 在二维平面中找到距离 P 点最近的 K 个点

    资料来源 亚马逊面试问题 解决方案1制作大小为 K 的堆并按最小距离收集点O NLogK 复杂 解决方案2 取大小为 N 的数组并按距离排序 应该使用QuickSort 霍尔修改 取前 K 点作为答案 这太复杂了 NlogN 但可以优化到近
  • 如何在给定目标大小的情况下在 python 中调整图像大小,同时保留纵横比?

    首先 我觉得这是一个愚蠢的问题 对此感到抱歉 目前 我发现计算最佳缩放因子 目标像素数的最佳宽度和高度 同时保留纵横比 的最准确方法是迭代并选择最佳缩放因子 但是必须有更好的方法来做到这一点 一个例子 import cv2 numpy as
  • C++ 中的矩阵类

    我正在做一些线性代数数学 并且正在寻找一些真正轻量级且易于使用的矩阵类 可以处理不同的维度 基本上是 2x2 2x1 3x1 和 1x2 我认为此类可以使用模板来实现 并在某些情况下使用一些专门化来提高性能 有人知道任何可用的简单实现吗 我
  • 解释 scipy.stats.entropy 值

    我正在尝试使用scipy stats 熵来估计库尔巴克 莱布勒 KL 两个分布之间的散度 更具体地说 我想使用 KL 作为衡量标准来确定两个分布的一致性 但是 我无法解释 KL 值 例如 t1 numpy random normal 2 5
  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • 基于时间的算法评分

    我们希望创建一种评分算法 在更短的时间内获得更高的分数 在更长的时间内获得更少的分数 需要注意的是 没有实际范围 因此时间范围可以从 100 毫秒到长达 10 分钟或更长时间 点范围为 0 到 50 谢谢你的帮助 你可以简单地把它变成一个线
  • 来自多元 t 分布的样本 python

    我想知道Python中是否有一个从多元学生t分布中采样的函数 我有包含 14 个元素的均值向量 14x14 协方差矩阵和自由度 我想从这个 t 分布中采样一个向量 对于一维情况 我使用 stats t rvs df loc scale 并且
  • 根据两个预先计算的直方图报告两个样本的 K-S 统计量

    Problem 在这里 我绘制了存储在文本文件中的 2 个数据集 在列表中 dataset 每个包含 218 亿个数据点 这使得数据太大而无法作为数组保存在内存中 我仍然能够将它们绘制为直方图 但我不确定如何通过2 样本KS测试 http
  • 比较批处理文件中的两个数字

    我在这个网站上搜索了我的问题 但没有找到解决我问题的方法 系统为玩家和计算机提供一个从 2 到 12 的随机数 这有 3 部分 X 大于 Y 如果 X 小于 Y 以及当 X 与 Y 相同 当我开始 bat 效果很好 我选择Play Game
  • 在 Blackberry 4.2 JDE 上调用 atan 函数

    我需要从我的 Blackberry Java 应用程序计算反正切值 不幸的是 blackberry 4 2 api 没有 Math atan 函数 Blackberry JDE 4 6 版有此功能 但 4 2 版没有 有谁知道计算 atan
  • numpy polyfit 中使用的权重值是多少以及拟合误差是多少

    我正在尝试对 numpy 中的某些数据进行线性拟合 Ex 其中 w 是该值的样本数 即对于点 x 0 y 0 我只有 1 个测量值 该测量值是2 2 但对于这一点 1 1 我有 2 个测量值 值为3 5 x np array 0 1 2 3
  • 如何重现 Ridge(normalize=True) 的行为?

    这段代码 from sklearn pipeline import make pipeline from sklearn preprocessing import StandardScaler from sklearn linear mod
  • 如何定义“f_n-chi-square”函数并使用“uniroot”求置信区间?

    I want to get a 95 confidence interval for the following question 我已经写了函数f n在我的 R 代码中 我首先使用 Normal 随机采样 100 个样本 然后定义函数h

随机推荐

  • 如果会话因无活动而过期,则注销并重定向到登录页面

    我正在尝试使用 Flask 更新一个网站 其中用户拥有帐户并且能够登录 如果超过 10 分钟没有活动 我想让用户会话过期并注销 并将用户重定向到登录页面 我想更新它 app before request下面是我的代码 如何检查登录时间并检查
  • 无法使用mockito模拟私有方法

    我正在尝试使用 power mockito 来模拟私有方法 读完这篇文章后我得到了一些想法 并且遵循了相同的结构 example https stackoverflow com questions 28121177 mock private
  • 如何将音频流式传输到 OpenAL Sources 中?

    我刚刚开始使用 OpenAL 我已成功将 WAV 文件加载到其中 并成功播放它们 这很容易 现在 我需要能够将音乐流式传输到 OpenAL 中 而不是将整个文件加载到其中 虽然这对于声音效果等有好处 但正如您可能知道的那样 对于音乐来说可能
  • 在 Oracle SQL 中 Case 语句的 When 部分中使用别名

    我已经尝试查找一段时间了 是否可以使用前面在 select 语句中声明的别名 是否可以在 Oracle SQL 的 case 语句中稍后的 case 中使用它 我发现的大多数结果都是关于如何根据案例陈述创建别名 这不是同一个问题 一个简单的
  • 防止用户在 Azure Devops (VSTS) 中创建没有父项的工作项

    我想阻止用户直接创建工作项 任务 任务只能通过使用用户故事中的添加子选项来创建 而不能直接创建 是否可以 防止用户在 Azure Devops VSTS 中创建没有父项的工作项 有一个解决方法 但不是完整的解决方案 您可以检查它是否适合您
  • git push heroku master 说“一切都是最新的”,但该应用程序不是最新的

    我在 Heroku 上有一个运行旧代码的应用程序 我做了一个小改变并提交了改变 然后我跑了 git push heroku master 它会说 Fetching repository done Everything up to date
  • Ruby on Rails 领域平均水平如何?

    有没有一种简单的方法来获取集合中属性的平均值 例如 每个用户都有一个分数 给定一组用户 users 如何获得该组的平均分数 有类似 users average score 的东西吗 我想我在数据库字段中遇到过类似的东西 但我需要它为集合工作
  • 如何关闭 MFMailComposeViewController?

    我想从我的 Swift 应用程序发送一封电子邮件 它运行良好 它发送了电子邮件 然而 发送电子邮件后 布局并没有退出 我想在发送电子邮件后退出布局 当我按下 取消 删除草稿 或 保存草稿 按钮时 我也希望出现这种行为 这是我必须发送电子邮件
  • 如何在没有 SelectionStart 的情况下设置 TextBox 光标位置

    我有一个 Windows 窗体文本框 后台线程每秒更新其值 如果我将光标放在文本框中 它将在下次更新时丢失其当前位置 文本选择也是如此 我试着这样解决它 protected void SetTextProgrammatically stri
  • 单个页面中的两个 xmlHttpRequest

    我对 ajax 相当陌生 但我正在尝试使用 javascript 实现两个简单的调用来动态更改页面上的两个单独的 div 我一次使用一个调用没有问题 但是当我使用两个调用时 似乎第二个 xmlhttprequest 接管第一个调用并写入两个
  • 使用不完全模式匹配作为过滤器?

    假设我有以下代码 type Vehicle Car of string int Bike of string let xs Car family 8 Bike racing Car sports 2 Bike chopper 我可以在命令式
  • 如何禁止显示后续异常的父异常(原因)

    我知道raise from None并已阅读当我提出自己的异常作为响应时 如何更轻松地抑制以前的异常 https stackoverflow com questions 17091520 how can i more easily supp
  • 限制结果中的字段

    我正在使用 MongoDB v3 0 1 和 MongoDB Java 驱动程序 3 0 0 RC1 我有一个用户集合 其中包含 用户名 名字 姓氏 电子邮件 等字段 现在我想选择所有用户 但仅限于 用户名 名字 和 姓氏 字段 在 Mon
  • 如何在Windows Phone 7应用程序开发中动态显示图像?

    我想动态显示图像 即 如果每当单击特定图像更多 4 到 5 次 时 该图像就会消失 并且新图像可以填充此位置 我想在窗口中动态显示图像使用 silverlight 的电话 7 我知道这是一个很老的问题 但我有几分钟的空闲时间 每四次点击屏幕
  • 使用 Prism 更改 Xamarin Forms 中的页面过渡动画

    是否可以使用 Prism 的 INavigationService 更改 Xamarin Forms 中的页面过渡动画 我希望在 Android 上有淡入淡出动画 就像使用默认的 Xamarin Forms PushAsync PopAsy
  • 查询在 Oracle 11g 上有效,但在 Oracle 8i 上失败

    我在 Oracle 11g 中运行此查询没有问题 select case when seqnum 1 then 1 when seqnum cnt then 0 end as value1 case when seqnum 1 then t
  • Python 字符串格式化:填充负数

    我想将整数格式化为字符串 以便在没有符号的情况下 它们将被零填充以具有至少两位数字 例如我想要 1 1 10 10 to be 01 01 10 10 具体来说 我想要负数 3 和非负数 2 具有不同的最小字符串长度 简单的数字填充详情he
  • 子 span 元素脱离父元素,flexbox / margin - 填充问题

    我阅读了类似问题的帖子 但仍然无法使其正常工作 当有大文本时 我试图使用文本省略号 JSFiddle https jsfiddle net heyrohit bxrpduxu fixIssue align items center thum
  • 具有多个/许多伪选择器/匹配的本机 Javascript querySelectorAll()

    如何在本机 Javascript querySelectorAll 中放置许多伪选择器 示例 我想搜索 id 以 id starting 开头并以 id ending 结尾的元素 找不到现有问题 因此自己制作并回答 对于 Native Ja
  • 我应该如何排列这些“有用”的分数?

    在我网站上的用户生成的帖子下 我有一个类似亚马逊的评级系统 Was this review helpful to you Yes No 如果有投票 我会在该行上方显示结果 如下所示 5 of 8 people found this repl