SuperAPI AI 工具集

scienceclaw-benchmark-for39

数据与分析

查看项目

更新于 11-02 04:42

技能介绍

用途

该技能面向自适应测试(adaptive testing)与学生答题预测任务。任务形式为:

  • 输入:训练矩阵 answers(n_train, Q),取值 1 表示正确、0 表示错误、-1 表示未作答;可选提供题目学科信息与学生元数据。对于待预测的学生,给出 can_query(n, Q)布尔矩阵(允许被揭示的单元格)与 targets(n, Q)布尔矩阵(需要预测的单元格)。
  • 任务声明了一个查询工具,可揭示某名学生对指定题目 id 的作答,每名学生有查询预算上限(配套基准中为 10)。
  • 交付物:int 数组(n, Q),在每个目标单元格上取 0 或 1,其余位置为 -1。
  • 质量指标:所有目标答案上的准确率(组织方在 10 组查询/目标掩码上取平均),越高越好。参考基线为:预测每道题在训练集中最常见的正确性。

主要能力

技能提供两条实现路径。

基于 scilib.adaptive 的两参数 IRT

  • fit_item_curves(answers):以边际似然 EM 拟合题目曲线,数千名学生规模下耗时数秒。
  • ability_posterior:能力后验。
  • predict_proba(model, revealed):预测正确概率。
  • select_queries(model, can_query, revealed, k, budget, method="batch"|"bald"):选择查询题目,支持 batch 与 BALD 两种方法。
  • predict(model, revealed, targets):对目标单元格进行预测。
  • merge_revealed:合并已揭示结果。
  • model 可以是训练矩阵本身(拟合结果按进程缓存)。

类型化算子

  • irt_item_response_fit
  • irt_adaptive_question_selection
  • irt_correctness_prediction

使用方式

推荐模式:将预算拆分为若干轮。

  1. 第 1 轮:select_queries(answers, can_query, [], k1);执行查询。
  2. 第 2 轮:select_queries(answers, can_query, [rev1], k2);执行查询。
  3. 最后:predict(answers, [rev1, rev2], targets)。

选择过程是确定性的,且 k 对应的列表是更大 k 对应列表的前缀。

在消耗真实查询之前,建议先在留出的训练学生上模拟整个流程(随机隐藏其已作答单元格的 20% 作为目标,从其余单元格中查询),以比较随机选择、BALD 与 batch 选择相对于多数类参考基线的表现。

适用场景

适用于需要从大规模“学生×题目”正确性矩阵出发、在有限查询预算下预测学生未揭示答题结果的场景,例如自适应测验、诊断性选择题预测等。

限制与注意事项

  • 预算按整个求解过程中被揭示的不同单元格计数,包括探索性或后续被丢弃的调用。
  • 查询前应固定轮数与每轮规模:改变 k 或轮次计划会改变后续轮次请求的单元格,可能超出预算。
  • 只有已作答且非目标的题目可被查询;不得尝试读取待预测学生的目标答案或标签,题目曲线只能基于训练矩阵拟合。
  • 每次查询调用只返回其自身单元格的 revealed 数组(-1 未揭示、0 错误、1 正确)。应保留每个数组并以列表形式传入;不要传入 revealed_values(所选选项 1-4),那是另一种编码。
  • 每名学生的证据仅约 10 个答案,因此相对于多数类参考基线的准确率提升有限,且在几十名学生的规模上噪声较大;报告增益时应同时给出样本量。