数据预处理与模型构建:从分类特征编码到标准数据集应用
1. 分类特征编码
在处理分类特征时,我们常常需要将输入的类别映射到对应的索引。Keras 可能会提供 keras.layers.TextVectorization 层来完成这个任务。它的 adapt() 方法可以从数据样本中提取词汇表, call() 方法能将每个类别转换为词汇表中的索引。若想将这些索引转换为独热向量,可以在模型开头添加该层,随后添加一个 Lambda 层来应用 tf.one_hot() 函数。
不过,独热编码并非总是最佳选择。每个独热向量的大小等于词汇表长度加上未登录词(OOV)桶的数量。当可能的类别较少时,这没问题;但如果词汇表很大,使用嵌入(Embeddings)进行编码会更高效。
一般来说:
- 若类别数量少于 10,独热编码通常是首选。
- 若类别数量大于 50(使用哈希桶时常见情况),嵌入通常更合适。
- 类别数量在 10 到 50 之间时,可以两种方法都试试,看哪种更适合你的用例。
1.1 使用嵌入编码分类特征
嵌入是表示类别的可训练密集向量。默认情况下,嵌入是随机初始化的。例如,“NEAR BAY” 类别最初可能由随机向量 [0.131, 0.890] 表示,“NEAR OCEAN” 类别可能由 [0.631, 0.791] 表示。这里使用的是二维嵌入,但嵌入维度是可以调整的超参数。
由于嵌入是
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



