如何基于多个样本进行预测?

数据挖掘 机器学习 分类 数据集 预测建模 训练
2021-10-02 18:49:42

我对 ML 比较陌生,所以如果我的问题表明缺乏对该领域的了解,我会提前道歉。

问题

一个特定的学习课程有很高的辍学率,我们想减少它。

数据集

我们有两个数据集:

  1. 关于学生本身的数据(例如,初始能力测试得分、人口统计)。该数据集包括要预测的特征。例如
ID, AGE, RESULT_TEST1, RESULT_TEST2,DROPPED_OUT
AAAA, 21, 0.6, 0.4, TRUE
BBBB, 20, 0.3, 0.9, FALSE
  1. 学生在课程期间参加的考试。该数据集包含有关考试类型(例如科目、复杂程度)和学生获得的结果的数据。有些考试是必需的,有些是强制性的,有些可以自愿参加。也就是说,每个学生都可以参加任意的考试列表。例如
ID, EXAM_ID, EXAM_COMPLEXITY, EXAM_SCORE
AAAA, XXXXX, 0.8, 0.4
BBBB, YYYYY, 0.2, 0.8

目标

这个想法是使用 ML 来使用历史数据计算特定学生在课程期间辍学的可能性。系统应该能够根据这两个数据集预测学生辍学的可能性有多大,以便我们给予他/她更多的支持。

挑战

如何结合这两个数据集来训练模型?我可以创建一个连接两者的超集,但我会用什么来预测结果?

例如,如果我训练模型:

ID, AGE, RESULT_TEST1, RESULT_TEST2, EXAM_ID, EXAM_COMPLEXITY, EXAM_SCORE
AAAA, 21, 0.6, 0.4,XXXXX, 0.8, 0.4
BBBB, 20, 0.3, 0.9,YYYYY, 0.2, 0.8

我如何预测DROPPED_OUT通过新学生(多个样本)的所有数据的可能性?

任何解释或指向文档将不胜感激。

先感谢您。

亚历克斯

1个回答

对于有监督的 ML,这是一个合理的标准问题:

  • 该类是变量“dropped_out”
  • 给定目标是预测特定于特定学生的变量,实例必须代表学生,而不是考试。

这个实例应该包含什么的定义似乎是您尚未达到的部分:您正确地看到您需要加入两个数据集,但在您的示例中,您通过考试 id加入它们。结果,您获得了每个代表特定学生的特定考试的“实例”,当然同一个学生可能会在数据中出现多次。解决方案是通过学生 id加入您的数据集,以使单个实例包含一个学生的所有信息,即如下所示:

AGE, RESULT_TEST1, RESULT_TEST2, SCORE_EXAM1, SCORE_EXAM2, SCORE_EXAM3,...., DROPPED_OUT

但是,考试似乎没有标准化,所以我看到了两个选择:

  • 简化:对于每个学生,只提供一些关于他们在考试中表现的汇总统计数据,例如分数和复杂性的 min、max、avg、std dev。这提供了固定数量的功能(在我的示例中为 8 个),每个功能都有特定的角色,以便 ML 方法可以“理解”它。
  • 重构数据:如果可能,重新排列考试数据,使一列对应于不同学生的相同考试。这意味着不再需要考试的复杂性,因为分数的分布是唯一重要的事情。对于没有参加特定考试的学生,可以有一些缺失/未定义的值,大多数 ML 方法都可以处理。

第二种选择很可能比第一种提供更好的结果,但以这种方式转换数据可能不切实际。