自适应考试系统中能力评估
开发一套自适应考试系统,除了建立题库,按照一套理论(算法)来选题及进行能力的评估也是很重要的组成部分。自适应考试系统,粗浅一些的采用自定义规则,而严格一些的一般会选用“项目反应理论”来作为基础算法。假设,题库已经建立完成,现在需要对测试者进行评分,从而区分测试者。
假设现在题库分10个等级的选择题,测试方法有做20题,40题,60题与80题。需要在测试者答完题后进行评分,以区分测试的能力水*。
一、 自定义规则的讨论
自定义规则最简单的莫过于答对1题,则抽取下一等级题目,一直到答对10级题目。反之亦然。这样的测试在二维坐标上可以绘制为一条直线。很明显,这种测试的效果并不好。同理,答对3道题升1级与这也没有太大区别。但是这种方法开发成本低廉,还是很有市场的。答对N道题升级,答对M道题降级(一般N != M),还是能对升降机制进行一定的控制。
我开发系统的过程中发现,用户答对答错*乎*衡的时候,基本为用户的大致水*(有兴趣可以测试一下 http://super.yeshj.com/en 和 http://super.yeshj.com/jp )。上面的设定也是这两套系统中的设定。用户进入系统,会默认用户为3级。根据用户答对答错,进行级别的升降。如果连续答对,那么会按照很快速度(可以理解为x^-N,N < 0 x < 0的速度)往上增长,同样,当答错时,也会很快速(可以理解为x^-N,N > 0 x>0 的速度)往下回落。级别将固定在测试在对与错中间徘徊时候的等级(可以理解为sin(x))。总是保证,做完20题有可能升到最高级。
有其它更好做法的朋友,可以交流一下。
二、 项目反应理论
项目反应理论一共有3个公式:
1、 p(i) = 1/(1+e^-D(i-b)) (单参数模式)
2、 p(i) = 1/(1+e^-Da(i-b)) (双参数模式)
3、 p(i) = c + (1-c)1/(1+e^-Da(i-b)) (三参数模式)
D=1.702是个常量,i为测试者能力,a为题目区分度,b表示题目难度,c表示题目的猜测系数。
从中可以看出,单参数模式不涉及题目区分度(a)与猜测系数(c),双参数模式不涉及猜测系数(c)。如果现在题库是选择题,这两个公式显然都不适合。如果题目有4个选项,那么猜测系数应该是25%。
如果按照这个理论来开发,系统的算法就会很复杂了。计算i的值,计算a的值都是很有挑战性的工作。单参数模式中,当能力值与难度相当的时候,答对概率是50%。而假设区分度是1,在三参数模型中,这个概率提高到了0.625。而在能力大于难度的时候,e的指数就是负值(难度系数数值越大,则难度越大),而答对概率也会提升。只有当能力减去难度趋*于无穷大的时候,p(i)才会等于1。
按照这套理论,假如进入系统时设定用户能力为0.3(这里采用设定能力与当前题目难度相等的做法,能有效减轻工作量),同时采用3级题库,难度为0.3。这里不自动计算区分度,设定区分度为1。那么用户答N题,正确率在M以上就可以进入下一级。同时把能力设定为下一个级别,一直到答完设定题目。
对项目反应理论感兴趣的朋友,可以去网上查找这方面的资料。这里只作了部分简单介绍。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述