【发布时间】:2017-02-05 19:38:08
【问题描述】:
我有 16 门课程的 150 名学生的成绩(或分数)。
我想使用决策树作为我的第一个模型来推荐学生在未来选修课中表现良好的课程。有 17 门选修课可供选择。
未来课程的数据包含 60% 到 85% 的高缺失值,因为每个学生只能从 17 门可用课程中选择 5 门选修课。但过去 16 年的课程中没有缺失数据。
我认为推荐的一种方法是使用过去课程和未来选修课程之间的相关性。因此,如果学生在一门以数学为重点的课程中表现出色,则系统或模型会推荐一门以数学为导向的选修课。但问题是数据非常稀疏,无法进行估算。
所有课程都与计算机科学流相关。我考虑将课程分组为以下类别:数学重点、编程重点或网络或商业等。
但是我不明白如何使用决策树来解决这个问题。如何创建目标或类字段。我猜这个过程需要两个步骤:一是找到课程之间的相关性,然后以某种方式保存它们。其次用它与过去的课程进行比较
我有 3 个字段(第一栏中的课程,第二栏的分数和第三栏的成绩)。
课程是指课程的名称(名词性字段)
标记指的是 1 到 100(数字字段)
成绩指的是A到F(序数字段)
分数和成绩是高度相关的,因为成绩主要是根据分数计算的。例如:分数(70 以上)导致 A 级,60-69 之间的分数导致 B 级。这是一个加分点,因为我可以根据分数和成绩创建一个决策树,然后看看哪个推荐得好。
所有课程都与过去的课程有一定的相似性。但是我不知道当数据太稀疏以至于插补可能失去原始数据的本质时计算相关性。
对如何解决这个问题的任何想法或想法表示赞赏!
我了解决策树及其变体。但我面临的问题是如何逐步解决问题。我认为没有可以应用决策树的目标字段。
我将制作其他 2 个模型以及人工神经网络和支持向量机,最后比较哪个模型做得最好。
In below dataset,
F27.. means Yr1 course,
F28.. means Yr2
F29.. means Yr3 and
F20.. means Yr4
数据集格式 - 1
Student_id,F27SA,F27PX,F27IS,F27SB,F27CS,F28IN,F28DA,F28PL,F28SD,F28DM,F29AI,F29FA,F29SO,F29PD,F29OC,F29FB,F20DL,F20BC,F20GP,F20MA,F20MC,F20RO,F20RS,F20DP,F20DV
55,48,39,56,52,56,52,72,69,83,63,37,79,67,67,66,88,NA,NA,58,NA,73,NA,87,NA,NA
68,87,74,70,88,57,47,58,64,49,67,59,62,65,65,83,62,NA,NA,62,85,NA,NA,NA,47,NA
70,82,77,79,97,56,41,62,76,41,61,53,75,66,66,79,76,NA,NA,62,84,NA,NA,NA,40,NA
99,88,79,75,81,45,68,47,57,68,52,66,61,64,64,58,51,60,75,84,NA,NA,71,80,NA,NA
100,80,91,69,70,35,68,58,50,55,48,49,66,45,45,59,78,62,63,NA,NA,NA,NA,80,NA,NA
101,95,76,70,98,74,56,70,73,55,85,62,61,73,73,73,77,NA,NA,NA,NA,NA,NA,NA,68,NA
103,83,77,58,60,67,50,54,60,44,45,43,37,53,53,53,50,NA,41,37,62,22,48,NA,NA,NA
105,87,68,78,96,67,57,85,77,76,88,75,67,50,50,74,79,62,59,82,91,56,NA,NA,NA,NA
106,82,82,71,77,52,65,66,45,45,56,73,75,75,75,41,66,66,69,59,NA,NA,69,71,NA,NA
107,84,75,77,93,64,61,77,53,47,63,60,54,64,64,82,70,59,75,NA,NA,59,NA,NA,60,NA
108,80,61,52,57,67,60,40,59,58,75,17,19,40,40,21,6,NA,NA,NA,NA,NA,NA,NA,NA,NA
数据集格式 - 2
Student_id,Course_code,Grades
55,F27SA,48
68,F27SA,87
70,F27SA,82
99,F27SA,88
100,F27SA,80
101,F27SA,95
103,F27SA,83
105,F27SA,87
106,F27SA,82
107,F27SA,84
108,F27SA,80
109,F27SA,85
完整的数据集可以在:https://github.com/MURL1DHAR/Dissertation_Project/tree/master/extrasyr123.csv 和 yr1234.csv
【问题讨论】:
-
你好:好主意!!,我认为你的数据应该以稍微不同的方式构造,首先我认为你的一个列应该是每个学生,然后是每个过去的课程我会打分。最后,我将建立一个基于回归的模型(GBM,随机森林)来预测他们在每门选修课中的得分。有了它,您可以构建一个预测结果的数据框,然后获得前 x 个科目,即学生将获得最好的成绩。我很乐意与此合作。听起来很有趣
-
是的。我可以在 github 上与你分享数据。我以你告诉的确切方式拥有数据。我使用 R 语言中的传播函数沿列传播课程。第一列是 student_id。我将使用一些示例数据更新我的问题。请问您能否展示一些步骤来预测他们在前 x 门科目的每门选修课中将获得的分数?
-
@DerekCorcoran 我在问题中添加了示例数据集并链接到完整数据集。第 1 年、第 2 年和第 3 年用于训练,第 4 年用于预测。有一些缺失值。我用 MICE 填写了 1,2 和 3 年的数据。如果你正在研究它,请告诉我。感谢您的支持。
-
@MurkudharFichandia,刚刚看到你的回复,我会努力的。干杯
标签: r correlation decision-tree recommendation-engine