💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖

本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】

TensorFlow 深度学习:特征工程与 tf.feature_column
在深度学习任务中,特征工程(Feature Engineering)是决定模型效果的关键步骤。虽然 TensorFlow 2.x 已经推荐使用 Keras 的
tf.keras.layers来处理特征,但tf.feature_column依然是一个常见且强大的工具,尤其适合构建结构化数据(tabular data)的输入管道。
本文将详细介绍 tf.feature_column 的常见用法,并结合代码示例进行说明。
🔹 一、为什么需要特征工程?
在原始数据中,特征可能是数值型、分类型、文本型甚至是稀疏特征。深度学习模型通常只能直接处理数值向量,因此我们需要通过 特征工程 将原始数据转换为适合神经网络输入的张量。
例如:
- 将类别特征(如“性别”)转化为 独热编码(One-Hot Encoding);
- 将连续数值特征(如“年龄”)进行 分桶(Bucketization);
- 将文本特征转化为 嵌入向量(Embedding);
- 将多个特征 组合交叉(Crossed Feature) 来捕捉非线性关系。
tf.feature_column 提供了一系列 API 来实现这些操作。
🔹 二、数值型特征
最基础的情况就是 数值特征,它们可以直接输入到模型。
import tensorflow as tf
# 定义数值型特征
age = tf.feature_column.numeric_column("age")
# 构建输入层
feature_columns = [age]
feature_layer = tf.keras.layers.DenseFeatures(feature_columns)
# 模拟输入
inputs = {
"age": tf.constant([[23.], [45.], [31.]])}
print(feature_layer(inputs))
🔹 三、类别特征
1. 分类 ID(离散类别)
对于类别型特征,可以使用 categorical_column_with_vocabulary_list 将类别转化为 one-hot 编码。
gender = tf.feature_column.categorical_column_with_vocabulary_list(
key="gender",
vocabulary_list=["male", "female"]
)
gender_one_hot = tf.featur

最低0.47元/天 解锁文章
5453

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



