理解「认知诊断」

我们总在抱怨传统的教育方式有问题、不适合现在这个时代了。不考虑教学内容方面的原因,单就测试这块就还停留在工业时代。一次很偶然的机会[1],我读到其实这块早在二十年前就有解决方案了,自己真是井底之蛙。

简单地说,考试这档子事,目前的问题在于反馈不准 & 反馈太慢:

  • 反馈不准:一张卷子考了辣么多知识点,你丫就给我一个分数?我怎么知道哪些知识点掌握了,哪些还懵着?
  • 反馈太慢:一个月,甚至一个学期才考一次。等到考的时候,都忘得差不多了。那难不成你要一天一考、一课一考?

这里主要解决「反馈不准」的问题,至于改进反馈的即时性,可以用游戏化的手法解决,暂时先放一放。

我们先来看一张成绩单:

学生 题1 题2 题3 题4 题5 做对题数
丁一 5
陈二 4
张三 3
李四 2
王五 1
赵六 1

可以看到王五和赵六都只得了 1 分,你就能说他俩学得一样好了吗?赵六做出来的那道题,全班只有他和丁一做出来了,而王五做出来的那题,全班除了赵六都能做出来。每道题的难度是不一样的,这,是不是该区分一下啊?

学生 题1 题2 题3 题4 题5 做对题数
丁一 5
陈二 4
张三 3
李四 2
王五 1
赵六 1
做错的人数 4 4 3 2 1

我们可以把「做错的人数」近似地看作「题目的难度」。其实如果要细究「难度的定义」,应该从「涉及的知识点」去考虑。这块后面还会回头来考虑。

现在我们用难度重新给每道题赋分:

学生 题1 题2 题3 题4 题5 得分
丁一 4 4 3 2 1 14
陈二 0 4 3 2 1 10
张三 0 0 3 2 1 6
李四 0 0 0 2 1 3
王五 0 0 0 0 1 1
赵六 4 0 0 0 0 4

但这么算的话,李四该跳起来了「我做对了 2 道题,赵六才做对了 1 道,凭什么他的分比我还高?也许那一题是他蒙对的呢?」

有道理啊!但我怎么知道他是不是蒙的呢?李四又在旁边使坏水「你看赵六那人就不是能做出题 1 的人,他其他题一道都没做出来,肯定是蒙的!!!」

呃~~有点道理。那我们就用「总共做对了几道题」近似地去评估「一个人的总体实力」。实力越强,蒙的可能性越低;实力越弱,越可能是蒙的。

现在我们用「实力 - 难度」试试:

学生 题1 题2 题3 题4 题5 得分
丁一 5 - 4 5 - 3 5 - 2 5 - 1 5 - 0 15
陈二 0 4 - 3 4 - 2 4 - 1 4 - 0 10
张三 0 0 3 - 2 3 - 1 3 - 0 6
李四 0 0 0 2 - 1 2 - 0 3
王五 0 0 0 0 1 - 0 1
赵六 1 - 4 0 0 0 0 -3

我们可以看到,「实力 - 难度」这个指标不光是一个算分的中间值,它还是一个用来衡量「某人做出这道题的可能性大小」的工具。比如,哪怕让丁一去做题 1 ,也会很费劲 5 - 4 = 1;但让他去做题 5 ,则很轻松 5 - 0 = 5

那如果这几道题,不是考题,而是知识点呢?我们能不能用这个工具去评估学生对各个知识点的掌握程度呢?我们只需要对它做一个 logistic 变换,就可以把它变成一个 0 到 1 之间的小数,我们能否用这个小数作为「某人做出某道题的概率」?

某人做出某道题的概率 = 1/ 1 + exp(-(实力 - 难度))
学生 知识点1 知识点2 知识点3 知识点4 知识点5
丁一 0.73 0.88 0.95 0.98 0.99
陈二 0.50 0.73 0.88 0.95 0.98
张三 0.50 0.50 0.73 0.88 0.95
李四 0.50 0.50 0.50 0.73 0.88
王五 0.50 0.50 0.50 0.50 0.73
赵六 0.05 0.50 0.50 0.50 0.50

你会奇怪,为什么好些个没拿分的题显示的是 0.5 呢?其实,0.5 在 logistic 的语境中,就是「不确定」的意思。概率很大,接近于 1 ,就是「掌握了」;概率很小,接近于 0 ,就是「没掌握」。好吧,这是我瞎掰的。

如果丁一陈二张三李四王五赵六不是一个个学生,而是一道道题呢?如果这不是一张成绩单,而是一张「知识点涵盖矩阵」呢?

题号 知识点1 知识点2 知识点3 知识点4 知识点5

题一涵盖了全部知识点,而题六只涵盖了知识点 1 。

那不就能用这种方式做到「评估知识点的掌握情况」了?需要注意的,实力那的值就不是这道题涵盖的知识点的个数了,而是学生做对某个知识点上的个数。

假设学生甲只做对了题四、题五:

题号 知识点1 知识点2 知识点3 知识点4 知识点5 做对与否
做对该知识点的数目 0 0 0 1 2
知识点的难度 4 4 3 2 1
知识点 知识点1 知识点2 知识点3 知识点4 知识点5
掌握程度 1 / (1 + exp(-(0 - 4))) 1 / (1 + exp(-(0 - 4))) 1 / (1 + exp(-(0 - 3))) 1 / (1 + exp(-(1 - 2))) 1 / (1 + exp(-(2 - 1)))
2% 2% 5% 27% 73%

可以看到,甲对知识点 5 掌握得最好。

简单来说,思路其实相当相当简单:

  • 做对该知识点越多,掌握得越好;
  • 该知识点在整套题中出现得越罕见,难度越大,越不容易掌握;

但上面这套算法没有解决一个很关键的问题:知识点之间是存在依赖关系的。比如:要想掌握分数的通分,至少得先学会整数的加减、求公分母……吧。但以上算法并没有考虑这个。

解决的思路其实也很简单:挨个考察这个知识点「所有的先修知识点」的掌握情况。

首先,我们得先细致地考察一番知识点的内在结构。我们用一个矩阵来做这事。其实这完全是为了数学上处理方便,用 if-else 同样解决问题。

画反了!!!知识点内在结构:1 表示行号节点是列号节点的「直接」先修知识点;0 表示没有联系。

但我们正在想要的是,能够回答「节点 i 是不是节点 j 的先修知识点,直接或者间接都行」的矩阵。其实我们只要对上面这个矩阵加上一个单位矩阵,再反复自相乘直到收敛就行了。注意是布尔相乘哦。

画反了!!!直达矩阵

现在,你问「知识点 2 是不是知识点 5 的先修知识点?」,只要查第 2 行第 5 列是否为 1 就行了。我们先给个记号:q(5 → 2) = 1 。「q」就是 required 的意思啦。

好,搞定第一个工具。

下面要讲的,数学形式可能和上面那个「实力 - 难度」公式不同,但本质是一个意思。

下面我们构造一个矩阵,如果甲同学在题 i 中掌握了知识点 j 所需的所有知识点,记作 1;反之,为 0 :

题号 知识点1 知识点2 知识点3 知识点4 知识点5 做对与否
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 1 1
0 0 0 0 1
0 0 0 0 0

(待续……)
下面上公式?


  1. 本来是在备考政治,然后社情民情这块有几个数据,就手贱去查了下。结果发现政府其实发布了很多数据。然后就想玩玩这些数据弄出个「房价预测模型」来。然后考虑学区房的影响时,又发现有教育领域的数据,就想弄个「教育质量评估模型」来。再然后对教育测试产生了兴趣,偶然发现了这篇《认知诊断?基于一个案例的理解(改进版)》。然后……就入坑了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 20171123 六本木街拍,好干净的detail 很有趣的一个互动装置。通过灯丝两端的磁铁让灯丝产生晃动,犹若在...
    dongker_dk阅读 132评论 0 0
  • 概述 JSPatch是什么? JSPatch 是一个Github开源项目(https://github.com/b...
    春眠不觉晓光阅读 961评论 0 1
  • (马太福音5:6) 饥渴慕义的人有福了,因为他们必得饱足。 在这个不正义的世界,人们渴望真正的正义,渴望一...
    天路客語阅读 5,170评论 0 2