【feature_column处理】- bucketized_column分桶列

本文介绍了如何通过tf.feature_column.bucketized_column将数值特征分桶,以更好地应用于模型。通过实例演示了如何为日期特征创建分桶,并展示了bucketized_column的基本用法和一个实际应用案例。
摘要由CSDN通过智能技术生成

1. 在做特征处理的时候,我们不希望把一个数值直接传给模型,而是根据数值的范围对值分到不同的categories
这个时候就用到了tf.feature_column.bucketized_column
2.原理很简单,如图
比如你对一个日期的特征要做处理,可以利用分桶的方式把它分到任意一个bucket里面
在这里插入图片描述
给日期出分桶结果

日期分桶表示
1993[1, 0, 0, 0]
2008[0, 1, 0, 0]
2015[0, 0, 1, 0]
2021[0, 0, 0, 1]

3. bucketized_column函数

def bucketized_column(source_column, boundaries):

参数说明

参数参数说明
source_column输入特征的key,这里注意必须是numeric_column
boundaries分桶的边界,比如boundaries=[0., 1., 2.],产生的bucket就是, (-inf, 0.), [0., 1.), [1., 2.), and [2., +inf), 每一个区间分别表示0, 1, 2, 3,所以相当于分桶分了4个

4. 举例

import tensorflow as tf
sess = tf.Session()
ydata = {"Year": [[1993], [2008], [2015], [2021]]}
numeric_feature_column = tf.feature_column.numeric_column("Year")

bucketized_feature_column = tf.feature_column.bucketized_column(
    source_column=numeric_feature_column,
    boundaries=[2000, 2010, 2020])
print(sess.run(tf.feature_column.input_layer(ydata, [bucketized_feature_column])))

5. 结果

[[1. 0. 0. 0.] #1993
 [0. 1. 0. 0.] #2008
 [0. 0. 1. 0.] #2015
 [0. 0. 0. 1.]] #2021

有兴趣可以看我的专栏: 今天你面试了吗?

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值