使用特征列可以将类别特征转换为one-hot编码特征,将连续特征构建分桶特征,以及对多个特征生成交叉特征等等。
要创建特征列,请调用 tf.feature_column 模块的函数。
该模块中常用的九个函数如下图所示,所有九个函数都会返回一个 Categorical-Column 或一个
Dense-Column 对象,但却不会返回 bucketized_column,后者继承自这两个类。
注意:所有的Catogorical Column类型最终都要通过indicator_column转换成Dense Column类型才能传入模型!
9种函数1、numeric_column 数值列,最常用。
2、bucketized_column 分桶列,由数值列生成,可以由一个数值列出多个特征,one-hot编码。
3、categorical_column_with_identity 分类标识列,one-hot编码,相当于分桶列每个桶为1个整数的情况。
4、categorical_column_with_vocabulary_list 分类词汇列,one-hot编码,由list指定词典。
5、categorical_column_with_vocabulary_file 分类词汇列,由文件file指定词典。
6、categorical_column_with_hash_bucket 哈希列,整数或词典较大时采用。
7、indicator_column 指标列,由Categorical Column生成,one-hot编码
8、embedding_column 嵌入列,由Categorical Column生成,嵌入矢量分布参数需要学习。嵌入矢量维数建议取类别数量的 4 次方根。
9、crossed_column 交叉列,可以由除categorical_column_with_hash_bucket的任意分类列构成。
特征列使用范例,以下是一个使用特征列解决Titanic生存问题的完整范例。
见:https://www.kesci.com/mw/project/5ea6af0a564b12002c0977b6
网友评论