知识追踪数据集介绍

困扰了我很久的问题,可能是我喜欢知根知底。见到论文中提到的2009-2010,看到代码中是数据不太一样发出了疑问

最新:超详细介绍

DataSet — EduData documentationicon-default.png?t=LA92https://edudata.readthedocs.io/en/latest/tutorial/zh/DataSet.html

常见论文数据集介绍

论文 Improving Knowledge Tracing via Pre-training Question Embeddings

Convolutional Knowledge Tracing: Modeling Individualization in Student Learning Process

Deep Knowledge Tracing and Dynamic Student Classification for Knowledge Tracing

RKT : Relation-Aware Self-Attention for Knowledge Tracing

Knowledge Tracing with Sequential Key-Value Memory Networks

ASSISTment 2009-2010

https://sites.google.com/site/assistmentsdata/home/assistment-2009-2010-data描述

2009~2010学年收集的ASSISTment数据。完整数据集分为两个不同的文件,一个是所有技能构建者数据,一个是所有非技能构建者数据。

来自 <https://sites.google.com/site/assistmentsdata/home/assistment-2009-2010-data>

技能建设者数据也称为精通学习数据。此数据集来自技能构建者(精通学习)问题集,其中满足某个条件 (通常设置为连续正确回答3个问题)时,学生被视为掌握了技能 ,并且精通后不会再给出任何问题。

这是备受关注的数据集。单击下面的

2009-2010年技能培养者数据

非技能生成器数据 2009-10

援助2009-2010完整数据集

该文件包含来自上述两个数据集的数据,此外,它还包含与问题集类型无关的数据。   

您可以尝试将这些数据用于的可能研究问题。

RQ1:预测学生表现

教育数据挖掘领域多年来一直在建立学生模型以适合学生数据并预测学生表现。使用ASSISTment数据来预测学生的表现已经做了大量的研究。他们中的一些人正在预测学生的下一个表现,例如在论文中:  “援助”模型:利用学生需要多少提示和尝试 ;其中一些是在一段时间间隔后预测学生的表现,例如在论文中: 使用学生建模来估计学生知识 保留

RQ2:个性化

已经在个性化学生模型方面做出了努力。研究表明,通过个性化学生参数可以改进模型拟合。

以下是使用ASSISTment数据在该领域进行的一些工作示例:

学生技能模型

贝叶斯网络中的知识跟踪个人化建模 

RQ3:车轮旋转

车轮打转是指学生可能难以从问题集中学习技能的情况。如何检测车轮旋转在智能辅导系统中很有用。

有关更多详细信息,请参见以下文章: 旋转:未熟练掌握技能的学生

RQ4:群集

以前的工作已经显示了聚类学生在预测学生表现方面的一些好处。可以探索不同的聚类特征和不同的聚类方法,以更好地改进学生模型。

以下是使用 ASSISTment 数据完成的聚类工作的一些示例:

对学生进行聚类以生成合奏以提高标准考试成绩的预测

教育数据挖掘中的谱聚类 

列标题(此列表是旧的,我们在此处对其中一些字段进行更完整的描述)

子页面(3) 组合数据集 2009-10非技能构建

数据在这里:

https://drive.google.com/file/d/0B2X0QD6q79ZJUFU1cjYtdGhVNjg/view?usp=sharing

它是在这里举办的:

http://users.wpi.edu/~yutaowang/data/skill_builder_data.csv

更新:在上述链接的数据集中检测到重复的数据记录。可以在这里找到更正的版本:

该文件包含每个学生问题技能的一行(即,如果学生 S 回答具有两个技能的问题 P,则除技能标识符外,所有字段中将有两行具有重复值):

https://drive.google.com/file/d/0B3f_gAH-MpBmUmNJQ3RycGpJM0k/view?usp=sharing

该文件每个学生问题包含一行(即,如果学生S回答了具有两个技能的问题P,则这两个技能将被折叠为格式skill1_skill2并以单行表示):

https://drive.google.com/file/d/1NNXHFRxcArrU0ZJSb9BIL56vmUt5FhlE/view?usp=sharing

该文件包含ASSISTmentsSkill-Builder问题集中的数据。 

技能构建者问题集具有以下功能:

  • 问题基于一项特定技能,一个问题可以具有多个技能标签。 
  • 学生必须连续回答三个正确的问题才能完成作业。
  • 如果学生使用辅导(“提示”或“将这个问题分解为步骤”),问题将被标记为不正确;
  • 学生将立即知道他们是否正确回答了问题;
  • 如果学生自己无法解决问题,最后的提示会给学生答案;
  • 当前, 此功能仅适用于数学问题集。
  • try_count
  • 学生尝试解决此问题的次数。
  • ms_first_response
  • 学生第一次响应的时间(以毫秒为单位)。
  • tutor_mode
  • 导师、测试模式、前测或后测
  • answer_type
  • 选择_1:多项选择(单选按钮)
  • 代数:数学计算字符串(文本框)
  • fill_in:简单的字符串比较答案(文本框)
  • open_response:记录学生的回答,但他们的回答总是被标记为正确
  • sequence_id
  • 问题集的内容 ID。分配相同问题集的不同作业将具有相同的序列 ID。
  • student_class_id
  • 类ID。
  • 位置
  • 课堂作业页面上的作业位置。
  • problem_set_type
  • 线性 - 学生按预定顺序完成所有问题。
  • 随机 - 学生完成所有问题,但每个学生都以不同的随机顺序呈现问题。
  • 掌握 - 随机顺序;并且学生必须通过连续纠正一定数量的问题(默认为3个)来“掌握”问题集,然后才能继续。
  • base_sequence_id
  • 这是为了说明是否已复制序列。这将指向原始副本,如果尚未复制,则与sequ​​ence_id相同。
  • 技能ID
  • 与问题相关的技能的ID。
  • 对于技能构建器数据集,同一数据记录的不同技能位于不同的行中。这意味着,如果学生回答一项多技能问题,则该记录将重复多次,并且每次重复都将使用一项多技能标记。
  • 对于非技能生成器数据集,同一数据记录的不同技能在同一行中,用逗号分隔。
  • 技能名称
  • 与问题相关的技能名称。
  • 对于技能构建器数据集,同一数据记录的不同技能位于不同的行中。这意味着,如果学生回答一项多技能问题,则该记录将重复多次,并且每次重复都将使用一项多技能标记。
  • 对于非技能生成器数据集,同一数据记录的不同技能在同一行中,用逗号分隔。
  • Teacher_id
  • 分配问题的老师的 ID。
  • 学校 ID
    • 分配问题的学校的 ID。
  • hint_count
    • 学生尝试解决此问题的次数。
  • hint_total
    • 关于此问题的可能提示数。
  • overlay_time
    • 学生重叠时间的时间(以毫秒为单位)。
  • template_id
    • ASSISTment的模板 ID  。具有相同模板ID的助手有相似的问题。
  • answer_id
    • 多项选择题的答案ID。
  • answer_text
    • 填写问题的答案文本。
  • 第一个动作
    • 第一个动作的类型:尝试或请求提示。
  • bottom_hint
    • 学生是否要求所有提示。
  • 机会
    • 学生必须练习此技能的机会数量。
    • 对于技能构建者数据集,同一数据记录中不同技能的机会位于不同的行中。这意味着如果学生回答了一个多技能问题,该记录将被复制多次,并且每个重复都被标记为多技能之一和相应的机会计数。
    • 对于非技能构建者数据集,同一数据记录中不同技能的机会在同一行中,并用逗号分隔。
  • 机会_原始
    • 学生必须练习此技能的机会数量仅计算原始问题。
    • 对于技能构建器数据集,同一数据记录的不同技能的原始机会位于不同的行中。这意味着如果学生回答了一个多技能问题,这个记录会被复制几次,每个重复都被标记为多技能之一和相应的原始机会计数。
    • 对于非技能构建者数据集,同一数据记录的不同技能的原始机会在同一行中,用逗号分隔。
  • 子页面(3) 组合数据集 2009-10非技能构建

    数据在这里:

    https://drive.google.com/file/d/0B2X0QD6q79ZJUFU1cjYtdGhVNjg/view?usp=sharing

    它是在这里举办的:

    http://users.wpi.edu/~yutaowang/data/skill_builder_data.csv

    更新:在上述链接的数据集中检测到重复的数据记录。可以在这里找到更正的版本:

    该文件包含每个学生问题技能的一行(即,如果学生 S 回答具有两个技能的问题 P,则除技能标识符外,所有字段中将有两行具有重复值):

    https://drive.google.com/file/d/0B3f_gAH-MpBmUmNJQ3RycGpJM0k/view?usp=sharing

    该文件每个学生问题包含一行(即,如果学生S回答了具有两个技能的问题P,则这两个技能将被折叠为格式skill1_skill2并以单行表示):

    https://drive.google.com/file/d/1NNXHFRxcArrU0ZJSb9BIL56vmUt5FhlE/view?usp=sharing

    该文件包含ASSISTmentsSkill-Builder问题集中的数据。 

    技能构建者问题集具有以下功能:

  • 问题基于一项特定技能,一个问题可以具有多个技能标签。 
  • 学生必须连续回答三个正确的问题才能完成作业。
  • 如果学生使用辅导(“提示”或“将这个问题分解为步骤”),问题将被标记为不正确;
  • 学生将立即知道他们是否正确回答了问题;
  • 如果学生自己无法解决问题,最后的提示会给学生答案;
  • 当前, 此功能仅适用于数学问题集。

EdNet: A Large-Scale Hierarchical Dataset in Education

EdNet 由2017 年以来从Santa784,309 名学生中收集的总共 131,441,538 次互动组成。每个学生在使用圣诞老人时平均产生了 441.20 次互动。基于这些交互的 EdNet 使研究人员能够访问大规模的现实世界 ITS 数据。此外,圣诞老人总共提供了 13,169 个问题和 1,021 个讲座,标记了 293 种技能,每个课程分别被消耗了 95,294,926 次和 601,805 次。据我们所知,就学生总数、互动和互动类型而言,这是向公众开放的最大教育数据集。

论文地址

https://arxiv.org/abs/1912.03072v2

下载地址

https://arxiv.org/pdf/1912.03072v2.pdf

全部源码

GitHub - riiid/ednet

Download links

  • timestamp是给出问题的时刻,表示为以毫秒为单位的 Unix 时间戳
  • solving_id代表学生的每个学习时段对应于每个bunle。它是单个整数的一种形式,从1.
  • question_id是给学生的问题的ID,它是一种形式q{integer}
  • user_answer是学生提交的答案,记录为介于ad包含之间的字符。
  • elapsed_time是学生在每个问题上花费的时间(以毫秒为单位)

 kaggle比赛也是使用的 ednet的数据集 Riiid Answer Correctness Prediction | Kaggle

 train.csv: 如上图 用于训练的主要内容

  • row_id:(int64), 行的ID编码;
  • timestamp:(int64), 此用户交互与该用户完成第一个事件之间的时间(单位:毫秒);
  • user_id:(int32), 用户的ID编码;
  • content_id:(int16), 问题或讲座的ID编码;
  • content_type_id:(int8) 如果事件是一个曝光给用户的问题,那么就是0;如果时间是用户看了一个lecture,那么就是1;
  • task_container_id:(int16)该批问题或讲座的ID编码。例如,用户可能会在看到其中任何一个问题的解释之前连续看到三个问题。这三个问题将共享一个task_container_id;
  • user_answer:(int8)用户对问题的回答(如果有)。-1表示空,用于lectures;
  • answered_correctly:(int8),用户是否回答正确,-1表示为空, 用户lectures;
  • prior_question_elapsed_time:(float32)用户回答上一个问题包中的每个问题所用的平均时间(毫秒),忽略其间的任何lectures。对于用户的第一个问题束或讲座,为null。请注意,时间是用户解决上一个捆绑包(即上一个task_container_id)中每个问题所用的平均时间;
  • prior_question_had_explanation:(bool)用户在回答前一个问题后是否看到了解释和正确的回答,忽略了其间的任何lectures。该值在单个问题束中共享,对于用户的第一个问题束或讲座,该值为null。通常,用户看到的前几个问题是入职诊断测试的一部分,他们没有得到任何反馈。

2.2. question.csv:

内容

.zipbit.ly/ednet-content下载文件

规格
压缩文件的大小0.6MB
未压缩文件的大小0.1MB
文件数4

问题

问题信息表包含 7 列:question_idbundle_idexplanation_idcorrect_answerparttagsdeployed_at

  • question_id是问题的 ID,它是q{integer}.
  • bundle_id是包含问题的包的 ID,它是b{integer}. 每个包可以包含 1 到 5 个问题。
  • explanation_id是每个包的相应解释(专家评论)的 ID,它是e{integer}. 请注意,每个问题的 bundle_ids 和 explain_ids 都是相同的。
  • correct_answer是每个问题的正确答案记录为一个字符之间ad包含。选择的数量取决于问题的部分:每个不属于第 2 部分的问题有四个选择,第 2 部分的问题有三个。
  • part是每个问题的一部分。它是一个从17的整数。
  • tags是每个问题的专家注释标签。它是一个整数列表,其形式为{integer};{integer};...;{integer}
  • deployed_at表示每个问题开始在Santa 中提供的时间,表示为以毫秒为单位的 Unix 时间戳

2.3. lectures.csv:用户在学习过程中观看的lectures的元数据。

  • lecture_id:train/test content_id的外键, 当content type是1的时候;
  • part:lecture的顶级类别code;
  • tag:一个标签代码。标签的含义将不提供,但这些代码足以将讲座聚集在一起。
  • type_of:lecture的核心目的的简要描述

2.4. example_test_rows.csv

测试集数据的三个样本组,因为它将由时间序列API交付。格式与train.csv大致相同. 有两个不同的列反映了AI导师在任何给定时间内实际拥有的信息,但是为了API的性能,用户交互被组合在一起,而不是严格地一次只显示一个用户的信息。一些用户将出现在隐藏的测试集中,而这些测试集并没有显示在训练集中,他们模拟了快速适应将新用户建模到网站的挑战。

  • prior_group_responses (string) :以组第一行中列表的字符串表示形式提供上一组的所有user_answer条目。每组中的所有其他行都为空。如果您使用的是Python,那么可能需要对非空行调用eval。某些行可能为空,或为空列表。
  • prior_group_answers_correct (string):为上一组提供所有“answered_correctly”字段,格式和警告与先前的prior_group_responses相同。某些行可能为空,或为空列表。

数据处理

  • 17
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
知识追踪模型代码的具体实现因应用场景不同而有所区别,以下是一个基于深度学习的知识追踪模型的示例代码: ```python import torch import torch.nn as nn import torch.optim as optim class KnowledgeTrackingModel(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(KnowledgeTrackingModel, self).__init__() self.hidden_size = hidden_size self.lstm = nn.LSTM(input_size, hidden_size) self.linear = nn.Linear(hidden_size, output_size) self.softmax = nn.LogSoftmax(dim=1) def forward(self, input, hidden): output, hidden = self.lstm(input.view(1, 1, -1), hidden) output = self.linear(output.view(1, -1)) output = self.softmax(output) return output, hidden def init_hidden(self): return (torch.zeros(1, 1, self.hidden_size), torch.zeros(1, 1, self.hidden_size)) # example usage input_size = # 输入向量的维数 hidden_size = # LSTM隐藏层的维数 output_size = # 输出向量的维数 model = KnowledgeTrackingModel(input_size, hidden_size, output_size) criterion = nn.NLLLoss() optimizer = optim.SGD(model.parameters(), lr=0.1) # 训练 inputs = # 训练数据集的输入向量 labels = # 训练数据集的标签 hidden = model.init_hidden() for i in range(len(inputs)): model.zero_grad() output, hidden = model(inputs[i], hidden) loss = criterion(output, labels[i]) loss.backward() optimizer.step() # 预测 inputs = # 测试数据集的输入向量 hidden = model.init_hidden() for i in range(len(inputs)): output, hidden = model(inputs[i], hidden) print(output) ``` 该模型使用了一个单层LSTM神经网络,输入向量经过LSTM网络进行处理后,再通过一个线性层输出结果。在训练过程中,使用交叉熵作为损失函数,随机梯度下降作为优化算法。在预测过程中,输入一个新的向量,即可得到该向量所代表的类别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值