【问题标题】:Text Input and Numerical Output issue for Exam Schedule PredictorExam Schedule Predictor 的文本输入和数字输出问题
【发布时间】:2018-08-13 06:27:42
【问题描述】:

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

【问题讨论】:

    标签: python machine-learning deep-learning regression


    【解决方案1】:

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

    对于类似字符串的输入,有几种编码方法;选择正确的可能取决于您的具体任务。由于您有一个非常“简单”(且可预测)的输入 - 即,您提前知道在测试/推理期间可能没有任何新的/看不见的课程标题,或者您不需要上下文/语义信息,您可以诉诸类似于 scikit-learn 的 LabelEncoder,它将把它变成不同的类。

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

    当然,这只是对它的简化,但有助于想象它是如何工作的。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多