You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于含教师调分规则的学生成绩数据确定各科目及格cutoff值

问题背景
  • 数据集包含500名学生的5门科目(数学、物理、化学、音乐、历史)期末成绩,单科目分值范围为0-100
  • 科目及格基础规则:成绩低于科目对应cutoff值即判定为该科不及格;科任教师可调整最多*不足5%*学生的科目结果,仅支持将不及格调整为及格
  • 总评规则:任意1门科目不及格则总评为不及格,5门科目全部及格则总评为及格
    已知当数学、物理、化学、音乐、历史cutoff分别为45、45、45、60、60时,样例数据如下,其中ID为2的学生历史59分,经教师调整判定为及格,总评结果为pass:
ID    math    physics   chemistry   music   history overall_assessment
1     95      96        70         65      75      pass
2     46      61        72         86      59      pass
3     55      32        21         95      96      fail
待解决问题

仅持有上述格式的成绩总评表(含学生ID、5门科目分数、总评结果),如何反推每门科目的真实cutoff值?
提问者提供的R语言模拟数据构造代码如下:

set.seed(1)
math <-  sample(30:100, 500, replace=T)
physics <- sample(30:100, 500, replace=T)
chemistry<- sample(30:100, 500, replace=T)
music<- sample(30:100, 500, replace=T)
history<- sample(60:100, 500, replace=T)
grade <- as.data.frame(cbind(math,physics,chemistry,music,history))
grade$assess <- ifelse(grade$math > 45 & grade$physics >55 & grade$chemistry > 60 & grade$music > 50 & grade$history > 80, "pass","fail")
grade$ID <- seq(1,500,1)
change_grade <- sample(1:500, 25, replace=F)
grade$assess[grade$ID %in% change_grade] <- "pass"
反推实现方案

整个反推逻辑完全基于题目给出的两个刚性约束:

  1. 教师调整的学生占比不足5%,对应500个样本里最多25人属于人工调整后及格,剩余至少95%的样本总评结果完全由cutoff规则自然判定,不需要人工干预
  2. 人工调整仅支持将不及格结果改为及格,不存在把及格改成不及格的反向操作
    具体落地步骤:
  • 5门科目的cutoff都是0-100之间的整数,直接枚举所有可能的cutoff组合即可,加约束剪枝后普通电脑几秒就能跑完计算
  • 对每一组候选cutoff,统计自然符合总评规则的样本量:总评为pass的学生所有科目分数都高于候选cutoff,总评为fail的学生至少有1门科目分数小于等于候选cutoff
  • 筛选出自然符合样本量≥475的所有候选组合(对应需要调整的样本≤25个,满足调整比例<5%的要求)
  • 最终真实cutoff取所有符合条件组合里各科目阈值最高的一组:如果更高的阈值就能满足调整比例要求,更低的阈值只会让更多学生自然及格,不可能是实际执行的判定线
    用提供的模拟数据跑这套逻辑,可以完全还原真实cutoff值:数学45、物理55、化学60、音乐50、历史80。

内容的提问来源于stack exchange,提问作者Mizzle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 04:36:14