源代码中ID字段的用途是什么


  • 用TensorFlow构建一个热编码层
  • 一个热编码器

查看以下源代码:

import pandas as pd
from tensorflow.keras import layers, models
colors_df = pd.DataFrame(data=[[5,'yellow'],[1,'red'],[2,'blue'],[3,'green'],[4,'blue'],[7,'purple']], columns=['id', 'color'])
categorical_input = layers.Input(shape=(1,), dtype=tf.string)
one_hot_layer = OneHotEncodingLayer()
one_hot_layer.adapt(colors_df['color'].values)
encoded = one_hot_layer(categorical_input)
numeric_input = layers.Input(shape=(1,), dtype=tf.float32)
concat = layers.concatenate([numeric_input, encoded])
model = models.Model(inputs=[numeric_input, categorical_input], outputs=[concat])
predicted = model.predict([colors_df['id'], colors_df['color']])
print(predicted)
# [[5. 0. 1. 0. 0. 0.]
#  [1. 0. 0. 1. 0. 0.]
#  [2. 1. 0. 0. 0. 0.]
#  [3. 0. 0. 0. 0. 1.]
#  [4. 1. 0. 0. 0. 0.]
#  [7. 0. 0. 0. 1. 0.]]

在上面的文章中,他们写道:

这个简单的网络只接受一个分类输入,One Hot Encoded,然后将One Hot Encoded特征与数字输入特征连接起来。请注意,我在DataFrame中添加了一个数字id列,以说明如何从数字输入中分离分类输入。

我还不明白这一点。

为什么id列与那些5位1的热门代码一起提供?

它在整个应用程序中有什么用途?

这篇博客文章只添加了Id,以保持输入字符串和一个热编码输出之间的连接,以便受众能够跟踪哪个输入字符串转换为哪个热行。

它只是添加了id作为输入,而在输出时没有进行任何处理来向您显示,例如,它的id为5的yellow转换为[0. 1. 0. 0. 0.]

它对模型没有其他影响,即性能,只是用于演示目的。

相关内容

  • 没有找到相关文章

最新更新