时间单位作为功能与个人记录

时间:2019-07-22 20:23:02

标签: machine-learning classification prediction feature-selection feature-engineering

我正在从事类似项目的研究,以预测在给定日期的表现下学生完成在线课程的可能性。到目前为止所采用的方法与该https://towardsdatascience.com/predicting-success-in-online-education-2b5979fa7016

非常相似

也就是说,在课程中点查看学生的各种功能(例如GPA)以及性能指标(测验结果,登录次数,在视频上花费的时间等),并尝试预测学生是否会通过当然在最后。我们当前的(随机森林)模型具有约80%的准确度,相当不错。但是现在我们想在整个课程中每周扩展这些预测。

我们当前的数据集使用时间单位作为特征。也就是说,第1周的累积绩效指标是一组功能,第2周的累积绩效是另一组功能,等等。因此,每个学生都有一条记录,但是这些功能包含每周一次的所有历史信息。所以功能看起来像

studentid   gpa major   age total logins wk1    total time spent wk1    total videos finished wk1   total logins wk2    total time spent wk2    total videos finished wk2   […and so on]

因此,我们(并且类似于链接中的示例),我们必须针对要进行预测的特定时间点训练模型。也就是说,对于第1周的预测,数据将仅具有第1周的性能特征,并且对此模型进行了训练。对于第2周的预测,我们具有第1周和第2周的功能,依此类推。

这一切都很好,而且课程只有20周,因此我们最终将获得19个模型。但是,假设我们要进行日常预测-我们必须拥有100多个模型。这使我想到是否应该使用狭窄的数据集,而不是在1,2,3周中按特定时间单位功能拆分绩效,依此类推,每个学生每周都有一个记录,每个效果指标的一项功能,以及一项指示该效果的星期(或一天)的功能。

这看起来像这样:

studentid   gpa major   age week #  total logins    total time spent    total videos finished

这将允许在数据上训练单个模型。但是,使用RF之类的分类算法,它将获得一条记录,并尝试将其分类为合格/不合格。但是,这里的一条记录会丢失很多历史信息,因为它只有那时的全部性能。在更广泛的数据集中,该模型可以了解趋势以及过去几周的性能变化。在狭窄的数据集中,模型输入将仅具有单个总性能指标以用作推断。基本上,如果我在第10个星期就给RF模型提供了一个狭窄的记录,那么它将没有任何信息显示此特定学生的表现随时间的变化,以及最新的总体表现。

如果希望以更高的粒度进行预测,我希望讨论如何解决此问题。在我看来,最终使用宽数据/多个模型版本变得棘手。假设您要对四年制学位进行每日预测,那么您将需要365 x 4 x [绩效指标数量],并使用365x4不同的模型。但是,应使用哪种模型与狭窄的数据集一起使用,该数据集可以了解特定学生随时间的表现?重要的是,学生起步缓慢但一直在稳步提高成绩,而不是开始坚强后退。

还增加了测验和测试的复杂性,每学期仅发生几次,并且采用与其他绩效指标不同的格式。在宽数据集的情况下,这只是一个功能,如果发生的话,它只会包含在训练集中。

在这里的任何输入将不胜感激!

0 个答案:

没有答案