Knowledge Tracing Project数据分析/挖掘

2023-05-16

本项目我们遵循以下工作流程。
1项目概况2、数据理解3、头脑风暴4、数据清理5、探索性数据分析6、特色工程7、功能选择8、型号9、选型10、参数微调11。进一步改进

项目概述

目标是根据学生之前的学习经验预测学生是否能够正确回答下一个问题。数据集包含了学生以前的学习经历(观看的讲座和回答的问题)、描述和讲座的信息。这是一个时间序列预测问题。
评估指标:预测概率与观测目标之间ROC曲线下的面积。

数据理解

trian.csv

question.csv

lecture.csv

3

解决问题需要哪些信息?
–问题是什么?
–用户是否看过相关课件?
–用户是否回答了相关问题?回答正确还是错误?
–用户有任何反馈吗?
–用户学习了多长时间?
–其他用户呢?关系密切的用户可能会执行类似的操作。
–问题的难度。

总之,我们需要每个用户的学习体验,用户之间的关系,讲座和问题之间的联系。问题之间的关系。讲座之间的关系。
•数据集提供了哪些信息?
–用户:学习多久了?看了什么讲座?回答什么问题,回答这些问题需要多长时间?是否阅读了正确答案的解释?
–问题:id、标签、类别、答案、组。
–讲座:id、类型、类别、标签。
•我们是否需要外部数据集?
讲课和提问的层次结构可能有用。
•如何处理数据集?
我们需要开发用户、问题和讲座之间的相互联系以及讲座和问题的层次结构

哪些模型擅长解决问题?
这是一个时间序列二值分类问题。很多模型都可以。

import numpy as np 
import pandas as pd 


def student_ability(train_data, user_id):
	student_data = train_data[train_data.user_id.values==user_id]
	student_data=student_data[student_data.content_id.values==0]
	total_question = student_data.shape[0]
	correct_count = student_data[student_data.correct==1].shape[0]
	ability = correct_count/total_question
	return ability, correct_count, total_question

def update_ability(new_data, correct_count, total_question) :
	if new_data.correct == 1:
		correct_count +=1
		total_question +=1
	ability = correct_count/total_question
	return ability

def question_hardness(train_data, ques_id):
	ques_data = train_data[train_data.context_type==0]
	ques_data = ques_data[ques_data.content_id==ques_id]
	correct_count = ques_data[ques_data.correct == 1].shape[0]
	total = ques_data.shape[0]
	hardness = correct_count/total 
	return hardness

def update_hardness(new_data, correct_count, total):
	if new_data.correct == 1:
		correct_count += 1
		total += 1
	hardness = correct_count/total
	return hardness

数据清理

我们处理丢失的值。
•用平均难度代替缺失的难度。
•对于新生,能力设置为平均水平。
分类变量由LabelEncoder()处理

解释转换为0/1。
•讲座类型编码为0;1;2。
最后,我们合并训练数据集和问题数据集。经过以上数据处理,我们得到以下特征。所有特征都是数值的。对于建模,“user id”被忽略,因为它不包含信息

特征选择

建模

训练数据集按升序用户id和递增时间戳排序。我们通过随机抽样将数据集分解为训练和测试数据集。这样可以确保学生出现在两个子集中。
由于这是一个二元分类问题,可以使用许多模型。我们测试以下模型。
•逻辑回归•SVM•KNN•决策树•随机森林•神经网络•XGBoost

模型选择

这是一个大数据和在线项目。 选择模型时,我们需要考虑计算 模型的复杂性和可伸缩性。 在计算复杂度方面,KNN和SVC不能逐步接受培训。 在可伸缩性方面,KNN不能很好地处理大数据。


模型微调

可以通过对超参数的网格搜索来微调模型。 由于计算量有限 消息来源,我们省略了此步骤。

进一步改进 学生之间的相似性将有助于预测给定其他学生的正确答案 性能。 问题之间的关系也很重要。

 

参考文章 https://github.com/yang0110/Knowledge-Tracing-Project

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Knowledge Tracing Project数据分析/挖掘 的相关文章

  • debian虚拟机下如何安装增强功能

    1 安装gcc和kernel headers gcc有可能默认安装的有 xff08 如果没有还需要安装gcc xff09 xff0c 但是还需要安装build essential sudo apt get install build ess

随机推荐

  • PyTorch学习系统之 scatter() 函数详解 one hot 编码

    torch Tensor scatter scatter 和 scatter 的作用是一样的 xff0c 只不过 scatter 不会直接修改原来的 Tensor xff0c 而 scatter 会 torch Tensor scatter
  • 最新RNN相关模型

    最近在看最新RNN相关模型 找到很多论文 Fundamentals of Recurrent Neural Network RNN and Long Short Term Memory LSTM network 递归神经网络 xff08 R
  • 知识追踪模型的应用

    背景 MOOC 近年来 xff0c 随着在线学习系统在教育环境中越来越普及 xff0c 在线学习人数越来越多 xff0c 教育者不可能追踪每一个学习者的知识状态并提供个性化的学习指导 xff1b 在线学习系统中的知识需要学习者通过各种冗余信
  • 自然语言处理之语料库

    语料库 定义 xff1a 语料库 corpus 就是存放语言材料的仓库 语言数据库 xff09 语料库技术的发展 早期 xff1a 语料库在语言研究中被广泛使用 xff1a 语言习得 方言学 语言教学 句法和语义 音系研究等 沉寂时期 xf
  • 知识追踪入门系列-论文资料汇总

    Paper xff1a 知识追踪相关论文 下载论文和代码见reference第一个链接 Deep Knowledge Tracing 首次提出将RNN用于知识追踪 xff0c 并能够基于复杂的知识联系进行建模 xff08 如构建知识图谱 x
  • 知识追踪方法比较

    DKT xff1a Deep knowledge tracing In Advances in neural information processing systems 这是一种开创性的方法 xff0c 它使用单层LSTM模型来预测学生的
  • 机器学习 注意力 笔记资料贴

    Self Attention与Transformer详解 https zhuanlan zhihu com p 47282410 写的非常详细 https jalammar github io illustrated transformer
  • 图像的几何变换maketform imtransform imresize imcrop

    背景 几何变换是将图像像素从一个位置映射到另一个位置 几何变换有五种常见类型 xff1a 剪切变换 平移变换 缩放变换 旋转变换和投影变换 它们如图4 1所示 在该图中 xff0c 原始图像显示在 A 中 xff0c 而变换后的图像显示在
  •  决策树(Decision Tree)原理及实现

    决策树 xff08 Decision Tree xff09 原理及实现 一 算法简介 1 1 基本模型介绍 决策树是一类常见的机器学习方法 xff0c 可以帮助我们解决分类与回归两类问题 模型可解释性强 xff0c 模型符合人类思维方式 x
  • Python 一维及多维数组及基本操作

    2 创建一般的多维数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import numpy as np a 61 np array 1 2 3 dty
  • java操作word方式 设置国内镜像命令

    java操作word方式还有 个人认为通过jacob最好 xff0c 自己可以扩展 xff0c 网上除poi之外几乎全是java com技术实现的 1 Apache POI Java API To Access Microsoft Form
  • matlib 多种方法实现图像旋转不使用imrotate函数

    原理 方法很棒https blog csdn net qq 41140138 article details 104737705 方法一 function g 61 rotate image1 f theta M N 61 size f t
  • MATLAB实现满秩LU/QR等分解 及求方程组的解 范数

    矩阵分解 矩阵的LR分解 方阵A是非奇异的 clear A 61 2 1 4 4 3 13 2 2 20 format rat L U 61 lu A L U P 61 lu A 矩阵QR分解 Q R 61 qr A xff09 R为上三角
  • Deep Knowledge Tracing(DKT)具体实现

    有关dkt可参考的文章http blog kintoki me 2017 06 06 tensorflow dkt 问题陈述 传统的评价方法 xff0c 如考试和考试 xff0c 只允许在考试结束后对学生进行评价 因此 xff0c 这些方法
  • pandas数据预处理 缺失值

    缺失值的分类 按照数据缺失机制可分为 xff1a 可忽略的缺失 完全随机缺失 missing completely at random MCAR xff0c 所缺失的数据发生的概率既与已观察到的数据无关 也与未观察到的数据无关 随机缺失 m
  • 数据预处理之数据清洗案例

    建议学习文章 xff1a https zhuanlan zhihu com p 111499325 https mp weixin qq com s jNoXHO4qU34gcha4zOGRLA https mp weixin qq com
  • ERROR conda.core.link:_execute(502): An error occurred while installing package

    记录错误 ERROR conda core link execute 502 An error occurred while installing package xff1a http mirrors tuna tsinghua edu c
  • 深度学习之Bias/Variance偏差、方差

    偏差 xff08 Bias xff09 和方差 xff08 Variance xff09 是机器学习领域非常重要的两个概念和需要解决的问题 在传统的机器学习算法中 xff0c Bias和Variance是对立的 xff0c 分别对应着欠拟合
  • Image Processing in the Spatial Domain 空间域图像处理

    背景 二维卷积 在二维卷积中 xff0c 我们通过卷积核对输入图像进行卷积来计算输出图像 卷积核是一个小尺寸的矩阵 xff0c 例如3 3 5 5或5 7像素 xff1b 这个矩阵中的项称为卷积系数 在二维相关中 xff0c 我们通过将输入
  • Knowledge Tracing Project数据分析/挖掘

    本项目我们遵循以下工作流程 1项目概况2 数据理解3 头脑风暴4 数据清理5 探索性数据分析6 特色工程7 功能选择8 型号9 选型10 参数微调11 进一步改进 项目概述 目标是根据学生之前的学习经验预测学生是否能够正确回答下一个问题 数