WEKA 预处理和预测学生成绩
Posted
技术标签:
【中文标题】WEKA 预处理和预测学生成绩【英文标题】:WEKA Preprocess and Predicting student grade 【发布时间】:2016-11-12 16:38:39 【问题描述】:我正在开发一个应用程序,该应用程序根据学生的成绩对每年进行预测。学生的成绩从 70 到 97 不等。我的数据集包含从 1 年级到 5 年级的学生成绩: GWA1 - 第一年一般加权平均 GWA2 - 第二年一般加权平均 以此类推,直到 GWA5
我打算使用 J48 进行预测。
我有不同的问题,
-
我的数据集包含不同的学生年级。如果学生目前处于第 4 年,则 GWA4 和 GWA5 为零。我应该只接收毕业的学生吗? (GWA1-GWA5 的学生)。
有些课程最多只能提供 4 年。他们数据集中的 GWA5 为 0。
程序还需要预测他当年的成绩。例如,对于二年级学生,程序会预测 GWA2。对于四年级学生,该程序预测 GWA4。
如何预处理数据?我应该将成绩分类为优秀、一般、差等成绩标签吗?
样本数据集:
GWA1 GWA2 GWA3 GWA4 GWA5
83.6 87.5 90.2 89.1 91.2
76.4 78.2 77.6 80.9 79.4
93.6 91.5 92.7 91.1 92.7
【问题讨论】:
能否添加更多细节,例如示例数据集? 添加了一个示例数据集 【参考方案1】:最重要的是,您的数据集不是tidy。列需要转换为行,例如进入这个表格布局:
student year gpa passed
s1 1 83.6 yes
s1 2 76.4 no
...
我将“通过”列向上。但是在默认配置下,这种设计更容易让 J48 使用。也就是说,要对分类变量或二元变量进行分类 - J48 无法处理“类”属性(=待预测属性)中的数字属性。
我不确定您是否也可以使用 J48 预测数值。我认为 weka 和数据集需要稍微调整一下。
检查自定义对话框,阅读文档,然后在 Google 上搜索“回归分类”。或者更好的是,使用 LinearRegression 分类器而不是 J48。
无论如何,在“过滤器”面板中,您需要添加“AddClassification”监督实例过滤器,然后将其“输出分类”选项设置为True。
【讨论】:
如果我使用回归,数据集是一样的吧?我将删除传递的列? 是的。表模式应该看起来像我画的那样,没有虚构的“通过”列。您从线性回归中获得的数值预测仍然很遥远。取决于数据质量和您可以应用的预处理步骤。也许先收集更多关于整个主题的信息。以上是关于WEKA 预处理和预测学生成绩的主要内容,如果未能解决你的问题,请参考以下文章