- 输入
- 作答矩阵 R,对应我们代码 dataset 中的
self.log_mat
- Q 矩阵,直接读取即可
- 能力矩阵 Θ,但从数学上写应该是一个学生能力集合,不同学生的向量不同
- 符号定义
- 学生 si,i∈{1,...,N}
- 题目 ej,j∈{1,...,M}
- QM×C 矩阵, qjc 表示第 j 道题目是否考察第 c 个知识点
- 题目 ej 考察的知识点集合 ej={c1,c2,...},c∈{1,...,C}
- 集合定义
- 提取考察知识点 c 的所有题目:E(c)={j:c∈ej}
- 寻找两类学生,一类是做对这些题目的学生,一类是做错这些题目的学生
- 一类是做对这些题目的学生:TS(c)={i:rij=−1,∀j∈Eset(c)且ΣjE(c)rij=0}
- 一类是做错这些题目的学生:FS(c)={i:rij=1,∀j∈Eset(c)且ΣjE(c)rij=0}
- 根据集合构造统计量
- 计算所有学生中的下确界和上确界
- θ(c)=max{θic,i∈{1,...,N}}
- 确定两类学生的知识点 c 的集合
- 做对相关题目的那些学生对知识点 c 的掌握能力集合 T(c)={θic,θi∈Θ,i∈TS(c)}
- 做错相关题目的那些学生对知识点 c 的掌握能力集合 F(c)={θic,θi∈Θ,i∈FS(c)}
- 根据这些学生确定掌握该知识点 c 的上确界和下确界
- θFS(c)=supF(c), θFS(c)=supF(c)
- θTS(c)=infT(c), θTS(c)=supT(c)
- 因此得到能力的掌握下确界和能力的未掌握上确界
- 掌握的能力下确界 M(c)=max{θTS(c),θFS(c)}
- 未掌握的能力上确界 M(c)=min{θTS(c),θFS(c)}
- 因此得到能力的掌握的均值和方差、能力未掌握的均值和方差
- T(c) 均值和方差 μTS(c),σTS(c)
- F(c) 均值和方差 μFS(c),σFS(c)