考试时间表预测程序的文本输入和数字输出问题

时间:2018-08-13 06:27:42

标签: python machine-learning deep-learning regression

我正在研究一个模型,该模型可以预测给定课程和学期的考试时间表。我的输入将是学期和课程名称,输出将是日期。目前,我已经完成了数据清理和预处理步骤,但是,我无法用一种方法来制作一个模型,该模型的输入是两个字符串,而输出是两个数字(检查的日期和月份)。我想到的一种方法是对课程名称进行编码,并将其写为二进制列表。 I.E输入:编码(课程),[0,0,1]输出:日,月。然后提供给回归模型。 我希望经验丰富的人可以告诉我更好的方法。

2 个答案:

答案 0 :(得分:0)

在我开始回答您的问题之前:
/ rant
我知道这听起来很傻,并不能真正解决您的问题,但是 为什么您正在为此使用神经网络吗?! 对我来说,这似乎是“每个人都在他们所在的地区使用ML / AI,所以现在我也必须这样做”的经典案例。 (这是完全不正确的)
/ rant over

对于类似字符串的输入,存在几种对它们进行编码的方法。选择合适的选项可能取决于您的特定任务。由于您输入的信息非常“简单”(即可预测),也就是说,您预先知道在测试/推理过程中可能没有任何新的/看不见的课程标题,或者您不需要上下文/语义信息,因此您可以求助于类似于scikit-learn的LabelEncoder,它将变成不同的类。

或者,您也可以抛出更重的编码结构,将值嵌入矩阵中。大多数DL框架都提供一些form of internal function for this,这基本上要求您为输入数据传递唯一索引,并为此主动学习一些k维嵌入向量。直观地,这些嵌入对应于语义或主题方向。例如,如果您具有3维嵌入,则第一个可以表示“社会科学课程”,另一个可以表示“技术课程”,而第三个可以表示“研讨会”。

当然,这只是它的简化,但有助于想象它的工作原理。

对于输出,预测特定日期实际上是一个很好的问题。由于我个人从未预测过自己的约会日期,因此我只能向其他用户推荐提示。 here为日期提供了一个很好的答案(作为输入)。 如果您可以牺牲结果的准确性,那么预测进行考试的日历周可能是个好主意。否则,您可以将其简单地视为两个回归值,但最终可能会得到无效的组合(例如,“负天/月”或“ 2月31日”之类的值)。

根据您拥有多少高质量的培训数据,结果可能会有很大差异。最后,我再次建议您考虑一下是否真的需要神经网络来执行此任务,或者是否有更简单的指标来执行此任务。

答案 1 :(得分:0)

创建虚拟变量或使用RandomForest。它们接受文本输入和数字输出。