【问题标题】:Label and integer as input for neural network标签和整数作为神经网络的输入
【发布时间】:2019-10-02 18:29:04
【问题描述】:

我想使用神经网络进行回归。作为输入,我有一个真实值,我希望神经网络也能预测一个真实值。到目前为止,它已经工作了。现在我还有一个由类(在本例中为工作日)组成的自变量,我想将其用作第二个输入以获得更好的预测。回归是否有可能有两个不同的输入,一个真实值和一个类?

我知道我可以将工作日编码为数字 1-7(我想我无论如何都必须这样做),但是神经网络会假设它是实数,对吗?但是平日之间没有排名,如何确保它们被视为班级?

【问题讨论】:

    标签: python neural-network regression


    【解决方案1】:

    您是对的,您可以将工作日编码为数字1-7

    然后,研究使用embedding layer 将此编码转换为嵌入。

    然后,将此embedding layer 的输出传递到您认为合适的网络。

    更多信息

    embedding layer 背后的直觉是您的网络将通过其输入进行反向传播。实际上,一周中每一天的嵌入将对应于一个实值向量,并且此嵌入将随每个小批量更新,以最小化您的损失函数。

    更新:在一周中的某一天进行这样的学习嵌入是一个好主意,因为与简单的整数或一次性编码相比,它会携带更多关于一周中每一天对目标的影响的信息。例如,如果 2 个不同的日子对目标有类似的影响,您的网络将能够将其嵌入投影到彼此接近的位置,从而使该投影比整数或 one-hot 编码更有意义。

    感兴趣的函数

    tf.keras.layers.Embedding

    torch.nn.Embedding

    教程

    https://www.tensorflow.org/guide/embedding https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html

    论文

    word2vec paper

    【讨论】:

    • 好的,所以我完成了这项工作并学到了很多东西(再次感谢!)。但到目前为止,我仍然没有弄清楚,是否以及如何将我的工作日输入和我的实际价值输入结合起来。我可以只使用嵌入的工作日并将它们作为第二个输入添加到实际值输入吗?我还是觉得不合适
    • 您可以对嵌入执行许多操作;所以你的评论不会有直接的答案。在您的职位上,您可以查看concatenate-将学习到的嵌入到您的其他功能中。
    • 您没有证明为什么使用嵌入层比简单地对一周中的几天进行热编码更合适。当不同的可能值以难以指定且因此必须学习的方式相关时,嵌入通常很有帮助。
    猜你喜欢
    • 2017-06-13
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多