Tensorflow 特征列说明

总结以下类型的用法

tf.feature_column.numeric_column、

tf.feature_column.bucketized_column、

tf.feature_column.categorical_column_with_hash_bucket、

tf.feature_column.embedding_column、

tf.feature_column.shared_embedding_columns、

tf.feature_column.indicator_column、

tf.feature_column.crossed_column

以下是对每个特征列的详细说明,包括它们的作用、适用场景、示例,以及在 Wide & Deep 模型中的应用侧。

1. tf.feature_column.numeric_column

  • 作用: 表示数值特征,适用于连续值特征。
  • 应用侧: 通常用于 Deep 侧。
  • 适用场景 :
    • 例子 1: 房价预测中的面积(如平方英尺)。
    • 例子 2: 用户行为分析中的浏览时间(如秒数)。

示例:

python 复制代码
area = tf.feature_column.numeric_column("area")  # 面积
browse_time = tf.feature_column.numeric_column("browse_time")  # 浏览时间

2. tf.feature_column.bucketized_column

  • 作用: 将数值特征分桶(离散化),将连续值映射到离散的区间。
  • 应用侧: 可以用于 Wide 侧和 Deep 侧。
  • 适用场景 :
    • 例子 1: 将用户年龄分段(如18-25、26-35等)。
    • 例子 2: 将收入分段(如低收入、中等收入、高收入)。

示例:

python 复制代码
age = tf.feature_column.numeric_column("age")
age_buckets = tf.feature_column.bucketized_column(age, boundaries=[18, 25, 35, 45, 55, 65])  # 年龄分段

3. tf.feature_column.categorical_column_with_hash_bucket

  • 作用: 表示高基数的分类特征,通过哈希函数将特征值映射到固定数量的桶中。
  • 应用侧: 通常用于 Wide 侧。
  • 适用场景 :
    • 例子 1: 用户ID(如"user_12345")。
    • 例子 2: 产品ID(如"product_67890")。

示例:

python 复制代码
user_id = tf.feature_column.categorical_column_with_hash_bucket("user_id", hash_bucket_size=10000)  # 用户ID
product_id = tf.feature_column.categorical_column_with_hash_bucket("product_id", hash_bucket_size=5000)  # 产品ID

4. tf.feature_column.embedding_column

  • 作用: 将分类特征映射到低维稠密向量(嵌入向量),通常用于深度学习模型。
  • 应用侧: 通常用于 Deep 侧。
  • 适用场景 :
    • 例子 1: 推荐系统中的用户嵌入表示。
    • 例子 2: 自然语言处理中的词嵌入。

示例:

python 复制代码
user_id = tf.feature_column.categorical_column_with_hash_bucket("user_id", hash_bucket_size=10000)
user_id_embedding = tf.feature_column.embedding_column(user_id, dimension=16)  # 用户ID嵌入

5. tf.feature_column.shared_embedding_columns

  • 作用: 将多个分类特征共享同一个嵌入向量空间,适用于多个特征具有相似的语义空间。
  • 应用侧: 通常用于 Deep 侧。
  • 适用场景 :
    • 例子 1: 多语言文本处理中的词嵌入。
    • 例子 2: 推荐系统中用户和物品的共同嵌入。

示例:

python 复制代码
user_id = tf.feature_column.categorical_column_with_hash_bucket("user_id", hash_bucket_size=10000)
product_id = tf.feature_column.categorical_column_with_hash_bucket("product_id", hash_bucket_size=5000)
shared_embedding = tf.feature_column.shared_embedding_columns([user_id, product_id], dimension=16)  # 共享嵌入

6. tf.feature_column.indicator_column

  • 作用: 将分类特征转换为稀疏的独热编码(one-hot encoding),用于表示每个类别的存在与否。
  • 应用侧: 通常用于 Wide 侧。
  • 适用场景 :
    • 例子 1: 处理低基数的分类特征,如性别("male"、"female")。
    • 例子 2: 颜色特征("red"、"green"、"blue")。

示例:

python 复制代码
gender = tf.feature_column.categorical_column_with_vocabulary_list("gender", ["male", "female"])  # 性别
gender_indicator = tf.feature_column.indicator_column(gender)  # 性别独热编码

7. tf.feature_column.crossed_column

  • 作用: 创建交叉特征,用于捕捉多个特征之间的相互关系。
  • 应用侧: 通常用于 Wide 侧。
  • 适用场景 :
    • 例子 1: 捕捉用户特征和产品特征之间的关系(如用户的地理位置和购买的产品)。
    • 例子 2: 组合地理位置和时间段的特征(如"北京-早上")。

示例:

python 复制代码
location = tf.feature_column.categorical_column_with_hash_bucket("location", hash_bucket_size=1000)  # 地理位置
time_of_day = tf.feature_column.categorical_column_with_vocabulary_list("time_of_day", ["morning", "afternoon", "evening", "night"])  # 时间段
location_time_cross = tf.feature_column.crossed_column([location, time_of_day], hash_bucket_size=10000)  # 交叉特征

总结

通过明确每个特征列的作用、适用场景和示例,可以更好地理解如何在 Wide & Deep 模型中有效地使用这些特征列,以提高模型的性能和表达能力。

相关推荐
可爱美少女几秒前
Kaggle-Predicting Optimal Fertilizers-(多分类+xgboost+同一特征值多样性)
人工智能·分类·数据挖掘
社会零时工25 分钟前
【OpenCV】相机标定之利用棋盘格信息标定
人工智能·数码相机·opencv
像素工坊可视化26 分钟前
监控升级:可视化如何让每一个细节 “说话”
运维·人工智能·安全
后端小肥肠32 分钟前
新店3天爆100单!我用零代码Coze搭客服,竟成出单神器?(附喂饭级教程)
人工智能·aigc·coze
AI大模型知识36 分钟前
Qwen3 Embeding模型Lora微调实战
人工智能·低代码·llm
Coovally AI模型快速验证1 小时前
SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
人工智能·神经网络·算法·yolo·计算机视觉·目标跟踪·无人机
Brduino脑机接口技术答疑1 小时前
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
人工智能·算法·脑机接口·新手入门
jndingxin2 小时前
OPenCV CUDA模块光流处理------利用Nvidia GPU的硬件加速能力来计算光流类cv::cuda::NvidiaHWOpticalFlow
人工智能·opencv·计算机视觉
计算机小手2 小时前
开源大模型网关:One API实现主流AI模型API的统一管理与分发
人工智能·语言模型·oneapi
kk5792 小时前
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
人工智能·windows·vscode·chatgpt