Machine learning Keras中是否需要一个热编码?

Machine learning Keras中是否需要一个热编码?,machine-learning,tensorflow,keras,one-hot-encoding,Machine Learning,Tensorflow,Keras,One Hot Encoding,我有一个标签为0-4的数据集。我使用以下代码将它们热编码到np数组中:labels=(np.arange(5)=labels[:,None])。astype(np.float32)。我的问题是,我们必须对它们进行热编码吗?我是否可以将数字/浮动标签保持在0-4之间并使用它们?如果是这样的话,怎么做?一个热编码让您能够估计每个类的概率。对于单个实数或整数类编码,网络永远不会为您提供相同的编码。如果你有相似的1类和5类,网络可能会混淆它们,它会给你平均结果,它会是1和5之间的一些数字,可能是2,3或

我有一个标签为0-4的数据集。我使用以下代码将它们热编码到np数组中:
labels=(np.arange(5)=labels[:,None])。astype(np.float32)
。我的问题是,我们必须对它们进行热编码吗?我是否可以将数字/浮动标签保持在0-4之间并使用它们?如果是这样的话,怎么做?

一个热编码让您能够估计每个类的概率。对于单个实数或整数类编码,网络永远不会为您提供相同的编码。如果你有相似的1类和5类,网络可能会混淆它们,它会给你平均结果,它会是1和5之间的一些数字,可能是2,3或4,以及介于两者之间的任何数字,但这些数字编码你的类,所以它将是完全错误的输出。

一个热编码使您能够估计每个类的概率。对于单个实数或整数类编码,网络永远不会为您提供相同的编码。如果你有相似的1类和5类,网络可能会混淆它们,它会给出平均结果,它会是介于1和5之间的一些数字,可能是2、3或4以及介于两者之间的任何数字,但这些数字对你的类进行编码,所以它将是完全错误的输出。

你的标签是什么

它们是“水平”、“强度”还是某种“度量”

  • 如果是,最好不要对它们进行编码,只需将它们压缩在0和1之间。然后,您的模型将能够计算一个结果,即强度。但这永远不会是准确的

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


简言之,如果你想测量某物的强度,一个变量。如果你想测量不同“类”的可能性,创建一个热向量

你的标签是什么

它们是“水平”、“强度”还是某种“度量”

  • 如果是,最好不要对它们进行编码,只需将它们压缩在0和1之间。然后,您的模型将能够计算一个结果,即强度。但这永远不会是准确的

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



简言之,如果你想测量某物的强度,一个变量。如果你想测量不同“类”的可能性,创建一个热向量

你将把数据应用于什么样的模型?我不确定我是否遵循。什么样的模型?你将把数据应用于什么样的模型?我不确定我是否遵循。什么样的模型?明白了。它们是水平的。只有0-4之间的离散整数。谢谢,明白了。它们是水平的。只有0-4之间的离散整数。谢谢,谢谢。你的答案也是正确的。我投了更高的票。很遗憾,我只能标记一个。谢谢。你的答案也是正确的。我投了更高的票。不幸的是,我只能标记一个。