DNNLinearConbinedRegressor的feature_column

DNNLInearConbinedRegressor 的feature_column 与其他同在tf.estimator 下的模型都一样,知识它下面的不同的方法适用方法都不一样,

1:对于线性模型来说稀疏的和密集的tensor都可以

2:对于DNN模型则只能接受密集的tensor


那么接下来就来介绍一下该包下面都可以处理什么样的特征:

再说一下feature_column 的作用,其实很简单,就是在真实的数据和模型之间提供一个桥梁的

作用,说简单的一点其实它提供了特征的处理,也可以理解为数据的预处理,但是预处理又不太准确,

feature_column 是特征方面的处理,属于特征工程发面的东西,但是他俩其实都是对数据的处理;


好了,返回正题:

1首先来说一下numeric_column ,他能生成一个连续的特征,可以理解为密集的特征,现在我还是没有理解连续的特征和

密集特征的区别:

定义方式如:price = tf.estimator.feature_column.numeric_column('price')

2:bucktized_column 他是一个分桶的操作,返回的是一个稀疏的tensor,

定义方式是:price_bucket = tf.estimator.feature_column.bucktized_column(price,[0,1,10])

这里介绍一下,这样酒吧price分成4哥桶了,分别是:(-inf,0 )   (0,1),(1,10),(10,+inf) 

还有一点是source_column必须是numeric_column ;

3:categorical_column_with_vocabulary_list:返回的是一个稀疏的tensor,处理分类性数据;相比较而言分类较少的

有个重要的参数是key(也就是特征列的名称),vocabulary_list

如:categorical_column_with_vocabulary_list(tradetype,[sale,Lease)

4:上面我们说到了对于较少的分类用categorical_column_with_vocabulary_list,那么对于多分类的数据我们该怎么办呢:

好了,是时候categocial_column_with_hash_bucket了,他需要一个key,和一个hash_bucket_size 数值越大,分类效果越好,但也是相对的,数值大能避免冲突,

5:牛叉的到了,那就是特征组合了,对于我们觉得把两个特征组合起来才能更好表达效果的特征,我们就把他们组合起来,

他的返回也是一个稀疏的特征cross_column

6:说最后一个了,那就是embedding_column了,他接受的是一个categorical_column,把高纬的离散的特征,转化成低纬度密集的tensor

常用的就是这些了,还有就是,

linear_model:对所有特征进行线性加权操作

wighted_categorial_column用来指定权重的;



猜你喜欢

转载自blog.csdn.net/weixin_38859557/article/details/80933921
今日推荐