怎么样用dw做网站,如何做市场推广,搜狗推广找谁,芜湖网站建设优化1. 背景tf.estimator是tensorflow的一个高级API接口#xff0c;它最大的特点在于兼容分布式和单机两种场景#xff0c;工程师可以在同一套代码结构下即实现单机训练也可以实现分布式训练#xff0c;正是因为这样的特点#xff0c;目前包括阿里在内的很多公司都在使用这一接…1. 背景 tf.estimator是tensorflow的一个高级API接口它最大的特点在于兼容分布式和单机两种场景工程师可以在同一套代码结构下即实现单机训练也可以实现分布式训练正是因为这样的特点目前包括阿里在内的很多公司都在使用这一接口来构建自己的深度学习模型。 特征预处理是几乎所有机器学习模型所必须的一个过程常见的特征预处理方法包括连续变量分箱化、离散变量one-hot、离散指标embedding等tensorflow给我们提供了一个功能强大的特征处理函数tf.feature_column它通过对特征处理将数据输入网络并交由estimator来进行训练本文通过实际的数据输出来直观地介绍与展现tf.feature_column的基本用法。2. 数据处理 特征数据主要包括categorical和dense两类处理方法是使用tensorflow中的feature_column接口来进行定义如下图总共有九种不同的函数分别有五种Categorical function、三种numerical function 加上一种bucketized_column可属于任何一种categorical column中的 with_identity其实和 dense column中的indicator_column没有区别都是类别特征的one-hot表示但是其属于不同的特征类别前者属于categorical后者属于dense对于estimator编写的不同网络而言其可接受的one-hot类型不同这里在实际操作中需要注意转换。2.1 categorical column2.1.1 categorical_column_with_identitycategorical_column_with_identity把numerical data转乘one hot encoding只适用于值为整数的类别型变量实际输出如下import 如图输出为birthplace的one-hot结果num_buckets用于确定每一个one-hot向量的最大特征类别数2.1.2 categorical_column_with_vocabulary_list or categorical_column_with_vocabulary_filecategorical_column_with_vocabulary_list or categorical_column_with_vocabulary_file根据单词的序列顺序把单词根据index转换成one hot encoding主要用于处理非整数型的类别特征两个函数的区别在于处理变量类别的多少数量前者对应类别少的情况所有可能的类别可以直接输入后者对应类别多的情况所有可能的类别可以存在一个文件中输入实际输出如下import 如图输出为sex的one-hot结果其后跟着的list用于定义该变量的所有类别。2.1.3 categorical_column_with_hash_bucketcategorical_column_with_hash_bucket对于处理包含大量文字或数字类别的特征时可使用hash的方式这能快速地建立对应的对照表缺点则是会有哈希冲突的问题。hash_bucket_size的大小一般设置为总类别数的2-5倍该函数适用于不能确定所有类别样式的类别变量实际输出如下import 如上输出为department的one-hot结果对于不同类的department出现了哈希冲突的情况。2.1.4 crossed_columncrossed_column特征交叉在有些情况下特征独自编码与多维特征交叉后的特征特性会有不一样的结果。该函数不能对hash映射之后的特征进行交叉实际输出如下import 如上输出为cross的one-hot结果hash_bucket_size代表输出的交叉向量的one-hot维度。2.1.5 embedding_columnembedding_column把categorical的data借由lookup table的方式找寻对应的feature vector来表示。假设有81个单词若使用categorical_column_vocbulary_list然后转乘numerical的indicator_column则需要81维度来描述此些单词这样极易造成数据的稀疏化对于推荐系统而言大维度的稀疏数据对于结果的影响较大因此我们考虑使用embedding_column来对数据进行压缩实际输出如下import 如上输出为交叉特征的embading向量embedding_column的输入为处理之后的特征变量可以是categorical也可以是dense的。2.2 Dense column2.2.1 numeric_columnnumeric_column该函数主要用于处理连续型变量即可以是float类型也可以是int类似从table中读取对应的(key)column并把它转成dtype的格式实际情况如下import 2.2.2 bucketized_columnbucketized_column: 该函数将连续变量进行分桶离散化输出one-hot的结果方便连续值指标与分类变量进行交叉特征构建实际情况如下import 3. 总结 本文通过直观的数据输出来展现tf.feature_column的特征处理过程方便大家理解这个函数tensorflow作为目前最常用的深度学习框架有着很多高级的API这些接口都可以极大方便我们算法工程师的工作tf.estimator不仅可以很好地处理特征同时它将train、evaluatete、predict都集成到了一起大家平时可以多使用该接口。