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 使用。也就是说,要对分类变量或二元变量进行分类 - J4​​8 无法处理“类”属性(=待预测属性)中的数字属性。

我不确定您是否也可以使用 J48 预测数值。我认为 weka 和数据集需要稍微调整一下。

检查自定义对话框,阅读文档,然后在 Google 上搜索“回归分类”。或者更好的是,使用 LinearRegression 分类器而不是 J48。

无论如何,在“过滤器”面板中,您需要添加“AddClassification”监督实例过滤器,然后将其“输出分类”选项设置为True。

【讨论】:

如果我使用回归,数据集是一样的吧?我将删除传递的列? 是的。表模式应该看起来像我画的那样,没有虚构的“通过”列。您从线性回归中获得的数值预测仍然很遥远。取决于数据质量和您可以应用的预处理步骤。也许先收集更多关于整个主题的信息。

以上是关于WEKA 预处理和预测学生成绩的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 weka 进行预测

Weka 决策树预测 NA 对缺失值的处理

在 Python 中使用 Weka 生成的决策树

为 Weka 生成 Arff 文件

Fiji / Weka 生成的 arff 文件中的原始属性

WEKA中的预测结果是啥意思?