2017-08-29 85 views
0

我有一个标签从0到4的数据集。我使用以下代码将它们编码为np数组:labels = (np.arange(5) == labels[:, None]).astype(np.float32)。我的问题是,我们是否需要热门编码它们?我能否将标签从0-4保持为数字/浮动状态并使用它们?如果是这样如何?Keras中需要一个热门编码吗?

+0

你会将数据应用于什么样的模型? –

+0

我不知道我关注。在什么样的模式? –

回答

1

你的标签是什么?

他们是“水平”,“强度”还是一些“措施”?

  • 如果是的话,最好不要对其进行编码,压缩只是它们之间的0和1。您的模型,然后就可以计算出一个结果,这将是强度。它永远不会是确切的。

  • 如果不是,那么您应该对您的标签进行编码,因为每个数字与另一个数字不相关,它们是“离散的”,并且对于您的模型来说也更好地显示离散结果。然后每个结果将是每个类的结果的可能性(可能不是完全可能取决于模型的参数)。


因此,简而言之:如果你想测量的东西的强度,一个变种。如果你想要不同“类”的可能性,创建一个热门的向量。

+0

明白了。他们是水平。只是0-4的整数是离散的。谢谢。 –

2

一个热点编码使您能够估计每个类的概率。网络永远不会给你单一的实数或整数类编码。如果你有类似的类1和类5,网络可能会混淆它们,它会给你意味着结果,它会是1到5之间的某个数字,它可能是2,3或4以及其间的任何数字,但是这些数字编码你的类,所以这将是完全错误的输出。

+0

谢谢。你的回答也是正确的。我把它提高了。不幸的是我只能标注一个。 –