返回

文章详情

寻找最佳狗零食的统计方法

Hacker News2026年6月22日 17:46

发布于2026年6月19日,作者:亚当·韦斯皮泽。我的灰hound狗Bebop,体重83磅,高33英寸,热爱三件事:快速奔跑、在家里跟着我转悠,以及零食。无论是咀嚼零食、从离派对太远的孩子手中抢来的披萨,还是一小盘猫粮,他都有敏锐的嗅觉和运动能力,能公平地获取自己喜欢的食物。我观察他吃东西已经好多年,因此,意识到我不知道他最喜欢的零食是什么,并且也无法轻易地询问他,这让我感到沮丧。幸好,对于Bebop的味蕾来说,Bradley-Terry模型为我们提供了一种通过成对比较来找出“零食强度”的方法。该模型给每个竞争者(或零食)指定(i)一个正的强度得分p_i。给定两个竞争者i和j,i击败j的概率为:P_r(i > j) = p_i / (p_i + p_j)。等效地,如果我们将每个强度写成指数得分p_i = e^(β_i),那么相同的概率可以写作:Pr(i > j) = e^(β_i) / (e^(β_i) + e^(β_j))。因此,该模型表明:两个竞争者潜在强度之间的差异决定了一个击败另一个的对数几率。国际象棋中使用的Elo等级系统与之密切相关。如果R_i和R_j是Elo评分,则:Pr(i > j) = (10^(R_i / 400)) / (10^(R_i / 400) + 10^(R_j / 400))。然而,现代Elo评分是通过增量计算的,以避免昂贵的重新计算周期并允许在每场比赛后更新评分。比赛结束后,(A)的评分通过将实际结果与预期结果进行比较来更新:R_A' = R_A + K(S_A - E_A),其中S_A是实际得分:胜利为(1),平局为(0.5),失败为(0)。常数K控制评分在每场比赛后移动的幅度。因此,如果一名玩家赢得了他们预计会赢的比赛,他们的评分只会稍微有所变化。如果他们赢得了一场被预计会输的比赛,他们的评分会大幅变动。从这个意义上说,Elo可以被视为Bradley-Terry思想的在线版本:在每个结果之后,向预测误差的方向移动评分。Elo对象棋这样的系统是合理的,因为比赛是持续进行的,评分需要立即更新。在这个实验中,数据集足够小,我们可以在收集试验后直接拟合Bradley-Terry模型。你也许会认出电影《社交网络》中提到的相关模型,其中成对比较的全球排名推动了FaceSmash,这是马克·扎克伯格早期的社交媒体实验。第三个应用是Chatbot Arena,它使用Bradley-Terry风格排名来评估模型性能。Bradley-Terry是在你想要全球排名但只有一对一比较时会使用的解决方案。实验实验的设置非常简单:我们可以拿一套零食,为它们贴标签,并进行一系列成对比较,以发现哪种零食是最好的!在实验之前,我训练了一个“选择”指令。每天晚上大约11点,我会去厨房,选择两种不同的零食,喊出“选择”这个词,并将零食置于双手中,允许Bebop只拿一个,另一个则放回包内。当实验开始时,Bebop已经习惯了这个例行程序,会先嗅闻两种零食,然后再选择其中一种。为选择零食,我使用了我们有历史的零食组合,比如Greenies,并搜索了多种不同形式的零食。每种零食的大小略有不同,但为了简化起见,我决定忽略这些差异。尽管这可能会在结果中引入大小偏见,但实验是在晚餐后约2小时进行的,这时他应该已经吃饱了,与我在实验后给他零食时的方式相符。换句话说,我不想参与一个需要我切割和称量狗零食的实验。选择的零食如下:零食A是MON2SUN,鸭子+生皮。亚马逊链接;零食B是Greenies,大号。亚马逊链接;零食C是Pork Chomps,红色的。亚马逊链接;零食D是MON2SUN,鸡肉+生皮。亚马逊链接;零食E是Pur Luv鸡肉,干鸡肉。亚马逊链接;数据对于配对,我创建了一个每日计划,进行两次一对一比较。完整源代码在github上;C/B :: B E/B :: E。在这个例子中,我们有两个一对一的比赛,这是一整天的试验。第一个比赛中,零食C在左手,零食B在右手,获胜的是B。第二个比赛中,E在左手,B在右手,获胜的是E。为了估计结果的确定性,我进行了引导实验:重复对试验进行重采样,拟合Bradley-Terry模型,并记录每种零食多次获胜的频率。Github源码。实验进行到一半时,我意识到零食C和B,

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡