首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度学习中的大量虚拟变量

深度学习中的大量虚拟变量
EN

Stack Overflow用户
提问于 2020-07-21 04:51:45
回答 1查看 148关注 0票数 1

我正在尝试为一个回归问题训练一个深度学习模型。我有2000个重要的分类输入,每个输入都有3个类别。如果我将它们转换为虚拟变量,那么我将有6000个虚拟变量作为深度学习模型的输入,这使得优化非常困难,因为我的输入(6000个虚拟变量)不是以零为中心的。此外,每个虚拟变量的方差都很小,因此6000个虚拟变量将很难解释输出中的方差。我想知道我是否需要对虚拟变量使用z分数来帮助优化?此外,是否有更好的解决方案来处理这2,000个分类输入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-21 05:35:45

您应该使用Embeddings,它将大型稀疏向量转换为保留语义关系的低维空间。因此,对于每个分类特征,您将拥有密集的向量表示。

下面是使用TensorFlow的伪代码:

代码语言:javascript
复制
unique_amount_1 = np.unique(col1)
input_1 = tf.keras.layers.Input(shape=(1,), name='input_1')
embedding_1 = tf.keras.layers.Embedding(unique_amount_1, 50, trainable=True)(input_1)
col1_embedding = tf.keras.layers.Flatten()(embedding_1)

unique_amount_2 = np.unique(col2)
input_2 = tf.keras.layers.Input(shape=(1,), name='input_2')
embedding_2 = tf.keras.layers.Embedding(unique_amount_2, 50, trainable=True)(input_2)
col2_embedding = tf.keras.layers.Flatten()(embedding_2)

combined = tf.keras.layers.concatenate([col1_embedding, col2_embedding])
result = tf.keras.layers.Dense()(combined)

model = tf.keras.Model(inputs=[col1, col2], outputs=result)

其中50 -嵌入向量的大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63003609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档