Algorithm 根据之前的统计数据得出测验中下一个问题的公式

Algorithm 根据之前的统计数据得出测验中下一个问题的公式,algorithm,math,statistics,data-analysis,analysis,Algorithm,Math,Statistics,Data Analysis,Analysis,我的目标是通过使用以前答案的统计数据,动态地确定测验中的下一个问题 因此,我: 难度问题字段(1-100) 你能得到的最大分数(256分) 用户已达到的问题分数(超出最大值x) 我想以某种方式将这些参数组合在公式中,为用户选择最合适的下一个问题 我怎么做 我的想法是给用户一个中等难度的问题作为第一个问题,然后检查用户的分数是否低于最高分数的50%,然后得到25%难度的问题,否则得到75%。然后在较小的时间段(25-50%或50-75%等)重复此模式。让我们假设玩家有一个固定的函数score=

我的目标是通过使用以前答案的统计数据,动态地确定测验中的下一个问题

因此,我:

  • 难度问题字段(1-100)
  • 你能得到的最大分数(256分)
  • 用户已达到的问题分数(超出最大值x)
我想以某种方式将这些参数组合在公式中,为用户选择最合适的下一个问题

我怎么做


我的想法是给用户一个中等难度的问题作为第一个问题,然后检查用户的分数是否低于最高分数的50%,然后得到25%难度的问题,否则得到75%。然后在较小的时间段(25-50%或50-75%等)重复此模式。

让我们假设玩家有一个固定的函数
score=f(难度)
,为每个难度提供预期的分数百分比。一旦我们知道了这个函数,我们就可以把它颠倒过来,找到给我们期望分数的难度等级

但是,该功能尚不清楚。但是我们有这个函数的例子,以我们前面的问题的形式。因此,我们可以对这些样本拟合一个函数。若你们知道依赖的形式,你们可以在拟合函数的形状中包含这些知识。我将简单地假设一个截断的线性函数:

score = f(difficulty) = max(0, min(m * difficulty + n, 1))
我们需要找到的两个参数是
m
n
。如果我们删除用户得分为100%或0%的所有示例问题,我们可以忽略截断。然后,我们有一个样本列表,这些样本构成一个线性方程组:

score1 = m * difficulty1 + n
score2 = m * difficulty2 + n
score3 = m * difficulty3 + n
...
这个系统通常没有解决方案。所以,我们可以求解一个最小二乘解。为此,我们将逐步构建一个2x2矩阵
a
和一个表示系统
a*x=b
的二维向量
b
。我们将从零矩阵和零向量开始。对于每个问题,我们将更新:

/ A11  A12 \  +=  / difficulty * difficulty    difficulty \
\ A21  A22 /      \       difficulty               1      /

/ b1 \ += / difficulty * score \
\ b2 /    \        score       /
一旦我们添加了至少两个问题,我们就可以解决:

m = (A12 * b2 - A22 * b1) / (A12 * A12 - A11 * A22)
n = (A12 * b1 - A11 * b2) / (A12 * A12 - A11 * A22)
我们可以找到
p
预期分数的难度如下:

difficulty = (P - n) / m
让我们做一个例子。下表包含一些问题以及添加问题后函数的状态

diff   score  |   A11  A12  A22  b1     b2 |     m     n 
--------------+----------------------------+-------------
70      0.3   |  4900   70    1  21    0.3 | 
50      0.4   |  7400  120    2  41    0.7 | -0.005  0.65
40      0.5   |  9000  160    3  61    1.2 | -0.006  0.74
35      0.7   | 10225  195    4  85.5  1.9 | -0.010  0.96
以下是拟合函数和示例问题:

如果我们想找到预期分数(例如75%)的难度,我们得到:

difficulty(0.75) = 21.009

你的系统的目标是什么?比如选择一个难度,很可能会让用户获得50%的可实现分数?@NicoSchertler yep,大约N%(我的意思可能不完全是50%)哇!非常感谢,这正是我想要的:)