{ "cells": [ { "cell_type": "markdown", "id": "edc68c17", "metadata": {}, "source": [ "# AssistMent2009 数据集分析\n", "\n", "# 数据集简介\n", "Skill builder 数据也称为掌握学习数据。该数据集来源于**技能训练**练习题组。当学生达到特定标准(通常设定为连续正确回答3道题)时,即被视为已掌握某项技能,此后系统将不再提供与该技能相关的题目。\n", "\n", "# 数据集列含义\n", "- order_id:原始问题日志的ID\n", "- assignmet:课程ID\n", "- user_id:学生ID\n", "- assistment_id:辅助问题ID\n", " - 与问题 ID 类似。这是构建器中用户将看到的问题的 ID。如果一个问题包含多个主问题和/或支架问题,则与单个问题相关的一切内容均称为一个辅助任务,并具有相同的辅助任务 ID。如果您在问题日志中看到相同的辅助任务编号,则表明这些问题是同一整体问题下的多个主问题(或支架问题)。\n", "- problem_id:问题ID\n", " - 如果一个问题有多个主问题,则每个主问题将拥有不同的问题ID\n", "- origin(0/1):区分主问题和支撑问题。\n", " - 1表示主问题,0代表支撑问题\n", " - 如果一个主问题带有支撑问题,且学生回答错误或请求将问题分解为步骤,则会创建一个名为“支撑问题”的新问题。这将在文件中生成单独的问题日志行,其中变量 original 设置为 0。\n", "- correct(0/1):问题的回复是否正确\n", " - 1表示第一尝试即正确,2表示第一次尝试错误或者请求了帮助\n", " - 这一列通常是预测的目标。(补充说明:尼尔·赫弗南指出,虽然大多数情况下确实如此,但我们也有教师可以评分的作文题。尼尔认为,如果该数值为 0.25,这意味着教师给出了 4 分中的 1 分)\n", "- attempt_count:尝试次数(学生输入答案的次数)\n", "- ms_first_response:开始时间与学生首次操作(请求提示或输入答案)之间的时间间隔(单位:毫秒)\n", "- tutor_mode:导师模式、测试模式和课后测试\n", " - ASSISTment09数据集中只有tutor和test两种导师模式,且test模式的题目占比极少\n", "- answer_type:问题答案的类型\n", "- sequence_id:习题集的ID\n", "- student_class_id:学生的班级ID\n", "- position:问题在作业页面上的位置\n", "- type:问题集的名称\n", " - ASSISTment09数据集中只有一个问题集MasterySection\n", "- base_sequence_id:用于标记习题集被复制的情况\n", " - 当一个习题集被复制的时候,该值为被复制的习题集的ID\n", "- skill_id:技能ID\n", " - 在09数据集中,每个问题只与一个技能相关\n", "- skill_name:技能名称\n", " - 对于skill_builder数据集,同一条作答记录若对应有多个不同的技能,则该条记录会被复制多次,以保证每一行记录只对应一个技能\n", "- teacher_id:教师ID\n", "- school_id:学校ID\n", "- hint_count:学生期间请求提示的次数\n", "- hint_total:系统能够提供的提示总数\n", "- overlap_time:学生完成该问题所用的时间(单位:毫秒)\n", " - 在理想情况下,这应该为学生完成问题所花费的时间\n", " - 在系统中,这个字段经常被错误计算,建议使用其他字段来间接计算\n", "- template_id:ASSISTments的模板ID\n", " - 具有相同模板ID的ASSISTments包含相似的问题\n", "- answer_id:多选题答案的ID\n", "- answer_text:填空题的答案文本\n", "- first_action:学生首次操作的类型\n", "- bottom_hint:\n", " - 如果此项为空,说明学生未请求提示\n", " - 对于支撑式问题,他们无法获得提示\n", "- opportunity:学生在该技能上能够练习的次数\n", " - 对于技能构建器数据集,同一数据记录中不同技能的机会分布在不同的行中。这意味着,如果学生回答了一道多技能题目,该记录会被复制多次,每次复制都会被标记为其中一种多技能,并附上相应的机会计数\n", "- opportunity_original:学生在该技能上能够练习的次数(仅计算原始问题)\n", "\n", "# 补充说明\n", "\n", "## 主问题和支撑式问题\n", "当学生在解决一个**主问题**时回答错误或者主动要求将问题分解成小步骤时,ASSISTment系统会提供**一个或多个支撑式问题**。\n", "- 支撑式问题在数据集中使用*original*字段进行标记\n", "- 学生通常不能在回答支撑式问题时获取提示\n", "\n", "## 导师模式\n", "在数据集中*tutor_mode*列用于区分学生做题时系统处于导师(tutor)、测试(test_mode)、课前测试(pre_test)还是课后测试(post_test)。\n", "在导师模式中,学生做题时可以获得即时反馈、提示或逐步辅导;在测试模式中,学生做题时系统不会给出任何反馈和指导信息。" ] }, { "cell_type": "code", "execution_count": 43, "id": "1ed269cb", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "# Load the ASSISTments 2009 dataset\n", "data = pd.read_csv(\n", " \"data/assistment09/skill_builder_data_corrected.csv\",\n", " low_memory=False,\n", " encoding=\"latin1\",\n", " )" ] }, { "cell_type": "code", "execution_count": 44, "id": "92fcf75b", "metadata": {}, "outputs": [ { "data": { "application/vnd.microsoft.datawrangler.viewer.v0+json": { "columns": [ { "name": "index", "rawType": "int64", "type": "integer" }, { "name": "order_id", "rawType": "int64", "type": "integer" }, { "name": "assignment_id", "rawType": "int64", "type": "integer" }, { "name": "user_id", "rawType": "int64", "type": "integer" }, { "name": "assistment_id", "rawType": "int64", "type": "integer" }, { "name": "problem_id", "rawType": "int64", "type": "integer" }, { "name": "original", "rawType": "int64", "type": "integer" }, { "name": "correct", "rawType": "int64", "type": "integer" }, { "name": "attempt_count", "rawType": "int64", "type": "integer" }, { "name": "ms_first_response", "rawType": "int64", "type": "integer" }, { "name": "tutor_mode", "rawType": "object", "type": "string" }, { "name": "answer_type", "rawType": "object", "type": "string" }, { "name": "sequence_id", "rawType": "int64", "type": "integer" }, { "name": "student_class_id", "rawType": "int64", "type": "integer" }, { "name": "position", "rawType": "int64", "type": "integer" }, { "name": "type", "rawType": "object", "type": "string" }, { "name": "base_sequence_id", "rawType": "int64", "type": "integer" }, { "name": "skill_id", "rawType": "float64", "type": "float" }, { "name": "skill_name", "rawType": "object", "type": "string" }, { "name": "teacher_id", "rawType": "int64", "type": "integer" }, { "name": "school_id", "rawType": "int64", "type": "integer" }, { "name": "hint_count", "rawType": "int64", "type": "integer" }, { "name": "hint_total", "rawType": "int64", "type": "integer" }, { "name": "overlap_time", "rawType": "int64", "type": "integer" }, { "name": "template_id", "rawType": "int64", "type": "integer" }, { "name": "answer_id", "rawType": "float64", "type": "float" }, { "name": "answer_text", "rawType": "object", "type": "string" }, { "name": "first_action", "rawType": "int64", "type": "integer" }, { "name": "bottom_hint", "rawType": "float64", "type": "float" }, { "name": "opportunity", "rawType": "int64", "type": "integer" }, { "name": "opportunity_original", "rawType": "float64", "type": "float" } ], "ref": "df411cc4-d6ea-4f22-b70a-9ab5d50356b4", "rows": [ [ "0", "33022537", "277618", "64525", "33139", "51424", "1", "1", "1", "32454", "tutor", "algebra", "5948", "13241", "126", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "3", "32454", "30799", null, "26", "0", null, "1", "1.0" ], [ "1", "33022709", "277618", "64525", "33150", "51435", "1", "1", "1", "4922", "tutor", "algebra", "5948", "13241", "126", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "3", "4922", "30799", null, "55", "0", null, "2", "2.0" ], [ "2", "35450204", "220674", "70363", "33159", "51444", "1", "0", "2", "25390", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "3", "42000", "30799", null, "88", "0", null, "1", "1.0" ], [ "3", "35450295", "220674", "70363", "33110", "51395", "1", "1", "1", "4859", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "3", "4859", "30059", null, "41", "0", null, "2", "2.0" ], [ "4", "35450311", "220674", "70363", "33196", "51481", "1", "0", "14", "19813", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "3", "4", "124564", "30060", null, "65", "0", "0.0", "3", "3.0" ], [ "5", "35450555", "220674", "70363", "33172", "51457", "1", "1", "1", "16031", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "4", "16031", "30060", null, "12", "0", null, "4", "4.0" ], [ "6", "35450573", "220674", "70363", "33174", "51459", "1", "1", "1", "15047", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "4", "15047", "30060", null, "6", "0", null, "5", "5.0" ], [ "7", "35480603", "220674", "70363", "33123", "51408", "1", "1", "1", "10732", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "3", "10732", "30059", null, "55", "0", null, "6", "6.0" ], [ "8", "33140811", "220674", "70677", "33168", "51453", "1", "1", "1", "23241", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "4", "23241", "30060", null, "12", "0", null, "1", "1.0" ], [ "9", "33140919", "220674", "70677", "33112", "51397", "1", "1", "1", "11512", "tutor", "algebra", "5948", "11816", "22", "MasterySection", "5948", "1.0", "Box and Whisker", "22763", "73", "0", "2", "11512", "30059", null, "36", "0", null, "2", "2.0" ] ], "shape": { "columns": 30, "rows": 10 } }, "text/html": [ "
| \n", " | order_id | \n", "assignment_id | \n", "user_id | \n", "assistment_id | \n", "problem_id | \n", "original | \n", "correct | \n", "attempt_count | \n", "ms_first_response | \n", "tutor_mode | \n", "... | \n", "hint_count | \n", "hint_total | \n", "overlap_time | \n", "template_id | \n", "answer_id | \n", "answer_text | \n", "first_action | \n", "bottom_hint | \n", "opportunity | \n", "opportunity_original | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "33022537 | \n", "277618 | \n", "64525 | \n", "33139 | \n", "51424 | \n", "1 | \n", "1 | \n", "1 | \n", "32454 | \n", "tutor | \n", "... | \n", "0 | \n", "3 | \n", "32454 | \n", "30799 | \n", "NaN | \n", "26 | \n", "0 | \n", "NaN | \n", "1 | \n", "1.0 | \n", "
| 1 | \n", "33022709 | \n", "277618 | \n", "64525 | \n", "33150 | \n", "51435 | \n", "1 | \n", "1 | \n", "1 | \n", "4922 | \n", "tutor | \n", "... | \n", "0 | \n", "3 | \n", "4922 | \n", "30799 | \n", "NaN | \n", "55 | \n", "0 | \n", "NaN | \n", "2 | \n", "2.0 | \n", "
| 2 | \n", "35450204 | \n", "220674 | \n", "70363 | \n", "33159 | \n", "51444 | \n", "1 | \n", "0 | \n", "2 | \n", "25390 | \n", "tutor | \n", "... | \n", "0 | \n", "3 | \n", "42000 | \n", "30799 | \n", "NaN | \n", "88 | \n", "0 | \n", "NaN | \n", "1 | \n", "1.0 | \n", "
| 3 | \n", "35450295 | \n", "220674 | \n", "70363 | \n", "33110 | \n", "51395 | \n", "1 | \n", "1 | \n", "1 | \n", "4859 | \n", "tutor | \n", "... | \n", "0 | \n", "3 | \n", "4859 | \n", "30059 | \n", "NaN | \n", "41 | \n", "0 | \n", "NaN | \n", "2 | \n", "2.0 | \n", "
| 4 | \n", "35450311 | \n", "220674 | \n", "70363 | \n", "33196 | \n", "51481 | \n", "1 | \n", "0 | \n", "14 | \n", "19813 | \n", "tutor | \n", "... | \n", "3 | \n", "4 | \n", "124564 | \n", "30060 | \n", "NaN | \n", "65 | \n", "0 | \n", "0.0 | \n", "3 | \n", "3.0 | \n", "
| 5 | \n", "35450555 | \n", "220674 | \n", "70363 | \n", "33172 | \n", "51457 | \n", "1 | \n", "1 | \n", "1 | \n", "16031 | \n", "tutor | \n", "... | \n", "0 | \n", "4 | \n", "16031 | \n", "30060 | \n", "NaN | \n", "12 | \n", "0 | \n", "NaN | \n", "4 | \n", "4.0 | \n", "
| 6 | \n", "35450573 | \n", "220674 | \n", "70363 | \n", "33174 | \n", "51459 | \n", "1 | \n", "1 | \n", "1 | \n", "15047 | \n", "tutor | \n", "... | \n", "0 | \n", "4 | \n", "15047 | \n", "30060 | \n", "NaN | \n", "6 | \n", "0 | \n", "NaN | \n", "5 | \n", "5.0 | \n", "
| 7 | \n", "35480603 | \n", "220674 | \n", "70363 | \n", "33123 | \n", "51408 | \n", "1 | \n", "1 | \n", "1 | \n", "10732 | \n", "tutor | \n", "... | \n", "0 | \n", "3 | \n", "10732 | \n", "30059 | \n", "NaN | \n", "55 | \n", "0 | \n", "NaN | \n", "6 | \n", "6.0 | \n", "
| 8 | \n", "33140811 | \n", "220674 | \n", "70677 | \n", "33168 | \n", "51453 | \n", "1 | \n", "1 | \n", "1 | \n", "23241 | \n", "tutor | \n", "... | \n", "0 | \n", "4 | \n", "23241 | \n", "30060 | \n", "NaN | \n", "12 | \n", "0 | \n", "NaN | \n", "1 | \n", "1.0 | \n", "
| 9 | \n", "33140919 | \n", "220674 | \n", "70677 | \n", "33112 | \n", "51397 | \n", "1 | \n", "1 | \n", "1 | \n", "11512 | \n", "tutor | \n", "... | \n", "0 | \n", "2 | \n", "11512 | \n", "30059 | \n", "NaN | \n", "36 | \n", "0 | \n", "NaN | \n", "2 | \n", "2.0 | \n", "
10 rows × 30 columns
\n", "| \n", " | order_id | \n", "assignment_id | \n", "user_id | \n", "assistment_id | \n", "problem_id | \n", "original | \n", "correct | \n", "attempt_count | \n", "ms_first_response | \n", "sequence_id | \n", "... | \n", "school_id | \n", "hint_count | \n", "hint_total | \n", "overlap_time | \n", "template_id | \n", "answer_id | \n", "first_action | \n", "bottom_hint | \n", "opportunity | \n", "opportunity_original | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | \n", "4.017560e+05 | \n", "401756.000000 | \n", "401756.000000 | \n", "401756.000000 | \n", "401756.000000 | \n", "401756.000000 | \n", "401756.000000 | \n", "401756.000000 | \n", "4.017560e+05 | \n", "401756.000000 | \n", "... | \n", "401756.000000 | \n", "401756.000000 | \n", "401756.000000 | \n", "4.017560e+05 | \n", "401756.000000 | \n", "45454.000000 | \n", "401756.000000 | \n", "67044.000000 | \n", "401756.000000 | \n", "328291.000000 | \n", "
| mean | \n", "3.066256e+07 | \n", "273701.845882 | \n", "83414.154542 | \n", "46443.517526 | \n", "81117.030011 | \n", "0.817140 | \n", "0.642923 | \n", "1.596417 | \n", "4.748464e+04 | \n", "7284.411088 | \n", "... | \n", "3031.291025 | \n", "0.487470 | \n", "2.235817 | \n", "5.964848e+04 | \n", "39571.335029 | \n", "145094.431667 | \n", "0.130012 | \n", "0.724092 | \n", "20.553535 | \n", "14.403307 | \n", "
| std | \n", "5.264886e+06 | \n", "11338.460017 | \n", "7417.814021 | \n", "11832.443427 | \n", "25426.799662 | \n", "0.386552 | \n", "0.479139 | \n", "12.050437 | \n", "3.614590e+05 | \n", "1497.941072 | \n", "... | \n", "1830.451486 | \n", "1.187255 | \n", "1.804244 | \n", "3.822188e+05 | \n", "12679.439926 | \n", "47127.478285 | \n", "0.394099 | \n", "0.446974 | \n", "62.523994 | \n", "62.393684 | \n", "
| min | \n", "2.022408e+07 | \n", "217900.000000 | \n", "14.000000 | \n", "86.000000 | \n", "83.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "-7.759575e+06 | \n", "5870.000000 | \n", "... | \n", "1.000000 | \n", "0.000000 | \n", "0.000000 | \n", "-7.759575e+06 | \n", "86.000000 | \n", "1.000000 | \n", "0.000000 | \n", "0.000000 | \n", "1.000000 | \n", "1.000000 | \n", "
| 25% | \n", "2.660218e+07 | \n", "266784.000000 | \n", "78970.000000 | \n", "37046.000000 | \n", "58467.000000 | \n", "1.000000 | \n", "0.000000 | \n", "1.000000 | \n", "8.518000e+03 | \n", "5979.000000 | \n", "... | \n", "2770.000000 | \n", "0.000000 | \n", "0.000000 | \n", "1.066900e+04 | \n", "30244.000000 | \n", "104412.000000 | \n", "0.000000 | \n", "0.000000 | \n", "3.000000 | \n", "3.000000 | \n", "
| 50% | \n", "3.110513e+07 | \n", "271629.000000 | \n", "80111.000000 | \n", "44498.000000 | \n", "80734.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.945300e+04 | \n", "6910.000000 | \n", "... | \n", "2770.000000 | \n", "0.000000 | \n", "3.000000 | \n", "2.426450e+04 | \n", "30987.000000 | \n", "136247.000000 | \n", "0.000000 | \n", "1.000000 | \n", "8.000000 | \n", "6.000000 | \n", "
| 75% | \n", "3.494364e+07 | \n", "279158.000000 | \n", "88142.000000 | \n", "53142.000000 | \n", "93102.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "4.457825e+04 | \n", "8032.000000 | \n", "... | \n", "5056.000000 | \n", "0.000000 | \n", "4.000000 | \n", "5.698925e+04 | \n", "46399.000000 | \n", "184077.000000 | \n", "0.000000 | \n", "1.000000 | \n", "19.000000 | \n", "13.000000 | \n", "
| max | \n", "3.831020e+07 | \n", "291503.000000 | \n", "96299.000000 | \n", "106210.000000 | \n", "207348.000000 | \n", "1.000000 | \n", "1.000000 | \n", "3824.000000 | \n", "8.407692e+07 | \n", "13362.000000 | \n", "... | \n", "9948.000000 | \n", "10.000000 | \n", "10.000000 | \n", "8.407692e+07 | \n", "106180.000000 | \n", "323181.000000 | \n", "2.000000 | \n", "1.000000 | \n", "3371.000000 | \n", "3371.000000 | \n", "
8 rows × 25 columns
\n", "