第三章:新版tensorflow入门,处理特征列

1、概述

特征列是原始数据与模型之间进行链接的桥梁。一般来说,人工智能的本质是要进行权重与偏置的运算用来确定模型的形态。

在使用之前的tensorflow版本时,都需要预先将数据进行类型、分布的处理,才能被人工智能模型所使用。而特征列的出现则使得数据处理的工作变得简单的多。

2、特征列的作用

特征列主要解决对用户数据进行预处理与特征化的处理,这种技术的出现主要是原始输入数据的多样性。


如下图所示,您可以通过 Estimator(鸢尾花的 DNNClassifier)的 feature_columns 参数指定模型的输入。特征列在输入数据(由 input_fn 返回)与模型之间架起了桥梁。


3、使用特征列

在上面的例子中我们采用如下方式来定义特征列。

my_feature_columns = []
for key in train_x.keys():
    my_feature_columns.append(tf.feature_column.numeric_column(key=key))
print(my_feature_columns)

其中关键语句是

tf.feature_column.numeric_column(key=key)

要创建特征列,请调用 tf.feature_column 模块的函数。本文档介绍了该模块中的九个函数。如下图所示,所有九个函数都会返回一个 Categorical-Column 或一个 Dense-Column 对象,但却不会返回 bucketized_column,后者继承自这两个类:



  • 数值型的特征列

tf.numeric_column(如下所示)也是一种将具有默认数据类型 (tf.float32) 的数值指定为模型输入的不错方式:

numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength")

要指定一个非默认的数值数据类型,请使用 dtype 参数。例如:

numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength",
                                                          dtype=tf.float64)

默认情况下,数值列会创建单个值(标量)。使用 shape 参数指定另一种形状。例如:

vector_feature_column = tf.feature_column.numeric_column(key="Bowling",shape=10)

matrix_feature_column = tf.feature_column.numeric_column(key="MyMatrix",shape=[10,5])

特征列

本文档详细介绍了特征列。您可以将特征列视为原始数据和 Estimator 之间的媒介。特征列内容丰富,使您可以将各种原始数据转换为 Estimator 可以使用的格式,从而可以轻松地进行实验。

预创建的 Estimator 中,我们使用预创建的 Estimator (DNNClassifier) 来训练模型,根据四个输入特征预测不同类型的鸢尾花。该示例仅创建了数值特征列(类型为 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值