我的任务是使用 MLP 预测一个人还能活多少年。我想讨论一个特定的特征:当前年龄。
从统计学上讲,这是一个条件概率。示例:0 岁时,我预计能活到 70 岁(还剩 70 岁)。然而,当我 70 岁时,我预计能活到 83 岁(还剩 13 年)。
在我的数据集中,我有一个人死亡的真实年龄,并且它遵循一个分布。因此,我增加了我的数据,如果有人在 N 岁时去世,那么将有 N 个当前年龄(特征)的数据点从 0 -> N 和相应的剩余年数(目标)从 N -> 0。
通过这种增强,我希望通过数据模拟当前年龄与剩余年数的分布。我永远不会希望我的网络输出(在非规范化之后)如果当前年龄是 70 岁,那么这个人将剩下 50 年。
现在,MLP 的最佳实践表明 1-2 个隐藏层就足够了,隐藏层中的节点数量应该介于输入和输出层的数量之间。但是,如果我只是通过特征缩放来标准化年龄,我将有一个输入节点、一个隐藏节点和一个输出节点。这实际上还不够,我希望我需要很多隐藏节点。
如果我使用一种代表当前年龄从 0 到 100 的热编码。通过良好的实践,我将能够使用 50 个隐藏节点。如果我今天 70 岁,我可能永远不会激活那个告诉我我还能再活 50 年的节点。
那么我的问题是,我是否应该跳过一个热编码,而只是缩放年龄并使用例如 50 个隐藏节点?
从理论上讲,因为年龄是连续的,不像说“猫”和“机器人”那么明显也不离散,那么一键编码是不必要的,但是如果我选择一键编码有什么缺点吗?