帮助人类选择的算法(例如小猫战争)

时间:2009-02-20 20:36:33

标签: algorithm graph-theory

好的,我正面临一个迫在眉睫的家庭成员,并选择了名字。

我考虑过编写软件来显示名称并强迫我选择哪种更好,类似于小猫战争。

虽然我有一个巨大的图表,但我不知道如何处理它,特别是如果有周期。例如,我比mam更喜欢mike,比jared更好的sam,比mike更好的jared - 简单地分配投票并计算它们是没有意义的(这就是我认为小猫战争所做的事情)。此外,我可能有一天会获得迈克与贾里德的投票并以单向投票,但如果我在另一天获得投票,则投票方式也不同。

所以:

  • 获得数据后,如何处理图表并对名称进行排名?

可替换地:

  • 可以使用哪些其他有用的算法来做出选择(比如车辆风格,如果你正在寻找新车)?

- 亚当

10 个答案:

答案 0 :(得分:6)

您可能想查看我前一段时间问过的问题的答案:How to rank a million images with a crowdsourced sort - 对如何处理大量比较操作的结果以获得排名提出了一些很好的建议。

答案 1 :(得分:6)

  例如,我比mike更喜欢mike,比jared更好的sam,比mike更好jared

如果您发现这种情况,您可以得出结论,您不适合选择姓名,并且应该选择其他重要人选。

答案 2 :(得分:4)

我认为我们已经完成了这个,答案仍然是Jon Skeet :)所有其他数据都无关紧要。

编辑:恭喜BTW:)

答案 3 :(得分:4)

这是错误的实施:You're Doing It Wrong。这正是她将永远胜利算法的正确应用。

答案 4 :(得分:4)

我不知道这个算法的可扩展性如何,但我已经在我设计的几个网站中成功实现了它(从IMDB's rating改编而来):

加权评级(WR)= (v / (v+m)) * R + (m / (v+m)) * C

其中:

  • R =小猫的平均值(平均值)=(投票/投票人数)
  • v =小猫的投票数=(投票)
  • m =需要列入前100名的最低票数(大约25是一个安全号码)
  • C =所有小猫的平均投票数=(投票总额)/(投票所有人的总和)

上述算法适用于小猫战争风格网站,但适用于“专家系统”或推荐引擎的算法。

一种方法 - 我不能保证一个好方法 - 推荐引擎将代表矩阵中的不同选择。让我们说你想挑一条裙子,你可能代表裙子的不同属性如下:

             Fashionable     Affordable     Colorful     Practical
Miniskirt        10              5              7            5
Cheer skirt      3               1              10           1
Grass skirt      2               7              2            1
Jean skirt       9               5              3            10

现在,您询问用户他们想穿什么样的衣服:

  • [X]时髦的东西?
  • []价格合理吗?
  • []多彩的东西?
  • [X]有什么实用的吗?

上面的输入表明用户正在寻找时尚和实用的东西,而不关心其他属性,因此很容易将上面的数据压缩如下:

             Fashionable     Practical     Total
Jean skirt       9               10         19
Miniskirt        10              5          15
Cheer skirt      3               1           4
Grass skirt      2               1           3

只要您知道要比较的每个对象的属性,这种非常简单但有效的方法就可以使用。

答案 5 :(得分:4)

查看关于“从成对比较/偏好排名”的机器学习论文。

以下是一篇可以帮助您入门的论文:Pairwise Preference Learning and Ranking

答案 6 :(得分:3)

  

可能还有哪些其他有用的算法   用来做出选择[...]?

  1. 提供配有婴儿名字的配偶单位 书。
  2. 等待来自配偶单位的输入 关于未来的婴儿名称。

  3. 拒绝令人反感的选择

  4. 重复 直到你和配偶单位达成一致 一个名字,或婴儿到达......其中 case,选择最简单的拼写选项 在名单上所以医院没有 搞砸了出生证明
  5. 这对我来说效果很好,两次。我们甚至不需要练习第11小时最简单的拼写选项!

答案 7 :(得分:3)

这是我们使用的算法:

  1. 每位家长分配一个性别。为该父级指定该性别的主要指示符。
  2. 主要是允许的,不受鼓励,根据任何特定时间的奇思妙想或奇思妙想,制作一份可能的后代名称列表。
  3. 指定另一位父级替代。候补人只有一种性别的能力,他们不是主要的,而且是否决权。候补人可能表示偏好某个特定选项而不是另一个,但实际上只是在开玩笑。
  4. 否决胜利。它不需要任何理由或解释(尽管在父母打算保持结婚状态的情况下会推荐一些......)。
  5. 如果潜在子项是迭代n> = 2,您可以参考迭代n = 1获取其他排名建议。对于大多数情况,此启发式应被视为决定投票
  6. 在我们的案例中,我是两个案例中的主要人物(两个男孩),当我们选择SecondSon的名称时,NumberOneSon是我们的决定性投票。而且你最好相信WifeUnit是A-OK在她周围摆脱否决......

    简而言之,祝贺。为人父母而烦恼。

答案 8 :(得分:2)

如果您记录赢/输,您可能希望向您展示具有高赢率和损失率的名称。最终,您喜欢的名称会冒泡到顶部,并且更有可能相互比较。您可能还想为尚未进行比较的名称添加一些权重,或者只进行很少的比较。

在经过一定数量的损失后清除名称,请确保不要将相同的名称相互比较两次,因为无论如何都是您的意见。

一旦你从垃圾中过滤掉了“作物的精华”,你将直接比较最好的,竞争风格,直到你选择一个胜利者。 (或者只是在那时手工看它们)

答案 9 :(得分:2)

我很确定迈克是正确的选择。