我在https://www.tensorflow.org/versions/r0.9/tutorials/wide_and_deep/index.html中读到过这个模型,文章中的特性有两种类型:分类和连续
在我的示例中,我有一列描述用户I,范围从0到10000000
我将此列视为分类并使用hash-bucket,但仅获得了大约0.50010的池AUC值
1)是否需要使用one-hot来处理该id列?
2)如果需要,如何实现?我找到了一个"tf.contrib.layers.one_hot_encoding“,但它不支持列名,所以不能在宽n深的演示中使用。
发布于 2016-09-17 22:13:57
不,您不需要对UserID列进行编码。每个值都是唯一的,不是分类的值。当类别少于1000个时,使用one-hot-encode是有意义的。
为了回答你关于如何使用one_hot_encoding的问题,假设你有一个标签列表(注意它们必须是整数):
import tensorflow as tf
with tf.Session() as sess:
labels = [0, 1, 2, 3]
labels_t = tf.constant(labels)
num_classes = len(labels)
one_hot = tf.contrib.layers.one_hot_encoding(labels_t, num_classes=num_classes)
print(one_hot.eval())https://stackoverflow.com/questions/39547572
复制相似问题