算法:不确定值时的二进制搜索


11

当每一步的测试可能给出错误的结果时,我需要一种算法来进行二进制搜索。

背景: 我需要让学生处于12个难度等级中最合适的位置。当前的方法是蛮力,并提出60个4答案的多项选择题,难度越来越大,在三个错误之后停下来,使学生处于等级:floor((score - 1) / 5) + 1最低为1。

我们担心客户在面对多达60个问题的考试之前会被关闭,然后才能真正使用该程序,因此我们希望最大程度地减少测试中提出的问题数量。我们还担心客户会跳过分班测试(因为它看起来很长),然后因为看起来太容易而放弃了该程序。

中位数排名实际上是2级,因此50%以上的学生得分<11(即回答<14个问题)。有趣的是,这可能是因为他们感到无聊并且不再认真对待问题(他们是年幼的孩子)。

建议的解决方案: 将测试作为对十二个项目的二进制搜索来实施,以难度级别6/7的问题开始,然后根据问题是对还是错来进行。从理论上讲,这可以在3-4个问题中找到适合他们的难度级别。

问题: 您可能会从现有的测试中猜到只有在三个错误的答案之后才结束,并使用60个问题在12个级别中进行选择,所以我们想让学生承认正确的答案(他们应该在25%的时间里做)提供不正确的答案(胖手指,错误阅读的问题等)。这对于二进制搜索尤为重要,因为即使第一个问题都错了,对第一个问题的正确回答也会使您处于难度的上半部分。

那么,有没有一种公认的二进制搜索算法可以保证单个测试的准确性?

天真的,我可能会在每个步骤中尝试3到5个问题,并且,由于较早的问题对最终结果的影响要大于对较晚的问题的影响,因此可能仅将这些附加问题添加到较早的步骤中,而不是对较后的问题。还有什么呢?


为什么要进行预测试?自行调整实际测试中的问题
Scott Stensland 2015年

@ScottStensland,有趣的想法。但是实际的程序是12个“地图”,每个地图有10个“课程”,每个课程包括8-15个HTML5画布“活动”或游戏,每个游戏都具有高度可变的设计。学生们在地图上前进,并在每节课和地图后获得奖励和奖励/证书。如果我们在每场比赛后都不断调整他们的水平,那将很令人迷惑,我们需要在所有现有游戏中建立反馈,并弄清楚每个游戏的反馈规则。

@Kirill,是否有一种简单的方法可以将问题交叉/交叉张贴到另一部分?

@jim您可以标记它以引起主持人注意,以要求他们移动问题,也可以在此处删除此问题并在此处创建一个新的相同问题。通常不建议进行交叉发布(同时在不同站点上有相同的问题)。我之所以提出这一建议,是因为在我看来,这是一个相对简单的统计/机器学习问题,可以在那儿更快地获得清晰的答案。
基里尔2015年

Answers:


2

将问题视为一系列贝叶斯概率;最初,假设孩子有1/13的几率刚好低于每个级别,并且为完整性起见,他们有1/13的几率居于榜首。然后:1)找到数组的中位水平,即高于该水平的概率最接近50%的水平2)从该水平向孩子提问。3)假设错误率为25%,请使用贝叶斯规则更新每个像元的概率。当一个单元格达到足够高的概率时终止,并返回最可能的水平,或者我猜您在某个水平上用尽所有问题时。

此算法的更严格的治疗方法是在这里 ; 我建议在实施之前阅读它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.