keras - Keras - 使用嵌入多个分类变量
问题描述
如果我正确理解嵌入矩阵的概念,它们的存在是为了提供一种比使用热编码更有效的方式来编码分类变量。似乎如果您有多个分类变量作为 Keras 模型的输入,则需要为每个分类变量使用单独的嵌入矩阵。但是,我找不到使用 Keras 提供的 Embedding 类将嵌入与多个分类变量一起使用的方法。文档中的示例仅显示了当模型的输入是单个分类变量时如何使用嵌入。当输入包含多个分类变量以及可能不使用嵌入的其他变量(例如,连续变量)时,有人可以提供一个如何使用 Keras 嵌入的工作示例吗?
解决方案
对于每个分类变量,您可以有单独的嵌入。希望下面的代码有所帮助。
inputss = []
embeddings = []
for c in self.categorical_vars:
inputs = Input(shape=(1,),name='input_sparse_'+c)
#no_of_unique_cat = data_lr[categorical_var].nunique()
embedding_size = min(np.ceil((no_of_unique_cat)/2), 50 )
embedding_size = int(embedding_size)
embedding = Embedding(no_of_unique_cat+1, embedding_size, input_length = 1)(inputs)
embedding = Reshape(target_shape=(embedding_size,))(embedding)
inputss.append(inputs)
embeddings.append(embedding)
input_numeric = Input(shape=(1,),name='input_constinuous')
embedding_numeric = Dense(16)(input_numeric)
inputss.append(input_numeric)
embeddings.append(embedding_numeric)
x = Concatenate()(embeddings)
x = Dense(10, activation = 'relu')(x)
x = Dropout(.15)(x)
out_control = Dense(output_shape)(x)
推荐阅读
- kotlin - 在 kotlin 中使用 Mvvm 和 Retrofit 和 Rxjava 实时数据的问题
- php - 显示营业时间表
- python - /media/ 处的 OSError
- php - PHP 无法访问类成员 (Laravel Illuminate\Http\Request )
- spring-boot - 在 Spring Boot kafka 中的 ProducerConfigs 中将 ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG 设置为 IntegerSerializer 时,它会给出类转换异常
- apache - 结合 htaccess 规则
- awk - 在 bash 中提取“未知”之前的最后一次出现
- javascript - 将变量传递给 php
- numpy - 尝试可视化图像时出现值错误
- javascript - 如何将对象数组中的属性传递给 api 请求