返回列表

Public 16 / Private 30 solution

673. MAP - Charting Student Math Misunderstandings | map-charting-student-math-misunderstandings

开始: 2025-07-10 结束: 2025-10-15 个性化学习 数据算法赛
公开榜 16 / 私有榜 30 名解决方案

公开榜 16 / 私有榜 30 名解决方案

作者: LX (sunnylx)

发布时间: 2025-10-16

合作者: yanqiangmiffy, heng

竞赛排名: 30

数据处理

1. 单词纠正

def correct_nott(text):
    replace_list = [("Becausee", 'Because'), ("becausee", 'because'), ("andd", "and"), ("youu", "you"), ("thenn", "then"), ("thinkk", "think"), ("timess", "times"),
                    ("theree", "there"), ("aree", "are"), ("becuase", "because"), ("wich", "which"), ("denominater", "denominator"), ("comman", "common"), ("thatt", "that"), 
                    ("yiu", "you"), ("snd", "and"), ("beacuse", "because"), ("dividedd", "divided"), ("thiss", "this"), ("awnser", "answer"), ("nott", "not"), 
                    ("addd", "add"), ("whichh", "which"), ("becuse", "because"), ("answerr", "answer"), ("timsed", "timesed"), ("bevause", "because"), 
                    ("shadedd", "shaded"), ("sre", "are"), ("arr", "are"), ("havee", "have"), ("wouldd", "would"), ("devided", "divided"), ("threee", "three"), 
                    ("becausr", "because"), ("becasue", "because"), ("brcause", "because"), ("beacause", "because"), ("simplist", "simplest"), ("becsuse", "because"), 
                    ("numberr", "number"), ("thimk", "think"),
                    ("simplestt", "simplest"), ("poeple", "people"),  ("anwser", "answer"), 
                    ]
    print("replace_list:", len(replace_list))
    for wrong, right in replace_list:
        text = text.str.replace(rf'\b{wrong}\b', right, case=False, regex=True)
    return text

2. 问题正确解释

使用 GPT-4o 为每个问题生成正确的解释

问题:形状的几分之几未被阴影覆盖?请用最简形式给出答案。[图片:一个三角形被分成 9 个相等的小三角形。其中 6 个被阴影覆盖。]
正确答案:\( \frac{1}{3} \)
正确解释:要找到形状中未被阴影覆盖的部分所占的分数,你首先确定未阴影三角形的数量,即总共 9 个三角形中的 3 个。简化分数 \( \frac{3}{9} \) 得到 \( \frac{1}{3} \),这代表了形状中未被阴影覆盖部分的最简分数形式。
学生答案:\( \frac{1}{3} \)
此答案正确。
学生解释:我认为 1/3 是答案,因为它是 3/9 的最简形式。

3. 标签解释

使用 GPT-4o 生成误解标签解释

## 误解列表
1. 正确:NA: 解释是正确的。
2. 既不:NA: 解释模糊或无用——但并非基于清晰的误解。
3. 不完整:误解“不完整”表示学生正确地将 \( \frac{3}{9} \) 简化为 \( \frac{1}{3} \),但他们的解释缺乏简化过程的细节。
4. WNB: 误解"WNB"表示学生错误地使用阴影三角形的总数作为分母,而不是三角形的总数。

标签处理

  1. 分类训练集中的所有类别,共 65 个标签
  2. 移除 True_, False_ 标签,共 37 个标签
  3. 对于每个问题,仅选择训练集中存在的误解,最多 6 个标签

模型方案

  1. SEQ_CLS 37/65 分类 (Qwen2.5-14B), 5 折交叉验证
    • 37 分类 5 折 A949 B946
    • 65 分类 5 折 A950 B945
  2. causal_lm 6 分类 (Qwen2.5-7B): 完整单词纠正,标签解释,问题正确解释
    • 5 折 lora 平均 A947 B944
    • 单折 A946 B943
  3. causal_lm 6 分类 (Deesseek-math-7B): 标签解释,问题正确解释,全量 SFT
    • 单折 A946 B940
  4. causal_lm 6 分类 (Qwen2.5-math-7B): 部分单词纠正,标签解释,问题正确解释
    • 单折 A943 B938
  5. causal_lm 6 分类 (Qwen2.5-7B): 完整单词纠正,标签解释,问题正确解释,过滤错误样本

模型集成

  • 按私有榜得分从高到低排名
  • 默认情况下,model1 是带有概率后处理的 65 分类 SEQ_CLS(将训练集中不存在的类别概率设置为 0),集成为排名混合 (rank-blend)
描述 模型 1 模型 2 模型 3 模型 4 模型 5 A (个人提交排名) B
模型 1 37 分类 0.50 0.25 0.10 0.15 0.951(5) 0.948
0.40 0.22 0.13 0.13 0.12 0.951(6) 0.947
模型 1 37 分类 (无概率后处理) 0.45 0.25 0.15 0.15 0.951(8) 0.947
0.55 0.3 0.15 0.950(36) 0.947
选定的提交 0.4 0.2 0.15 0.15 0.1 0.951(3) 0.947
模型 1 37 分类 0.45 0.25 0.15 0.15 0.1 0.951(7) 0.947
0.35 0.45 0.2 0.949 0.947
选定的提交 0.45 0.25 0.15 0.15 0.951(1) 0.947

遗憾的是,我们无法选择 0.948 的解决方案

同比赛其他方案