如何在tf.estimator.DNNClassifier中指定功能列?

时间:2018-11-05 21:46:31

标签: tensorflow

我有一个基本上像这样的数据集

FeatureA FeatureB FeatureC Target

3        2        5        1

4        1        8        0

3        0        2        0

目标是分类(1,0),特征是数字。目标是学习一种基于所有3个特征(目标是0还是1)进行分类的算法。

调用分类器时,例如在Google colab的构建文本分类器的示例中,他们就是这样编写代码的

estimator = tf.estimator.DNNClassifier(
hidden_units=[500, 100],
feature_columns=[embedded_text_feature_column],
n_classes=2,
optimizer=tf.train.AdagradOptimizer(learning_rate=0.003))

但是,在我的示例中,我只想将3个功能列用作feature_columns,如何告诉tf.estimator.DNNClassifier?即我该如何将参数feature_columns传递给我们?

1 个答案:

答案 0 :(得分:0)

实际上很简单...尽管花了我一段时间才能理解它。

在下面仔细查看以下代码:

# Represent a tf.float64 scalar.
numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength",
                                                          dtype=tf.float64)

可以说您正在为此特定模型“构建”一列。在这种情况下,列名称为“ SepalLength”,其数据类型为float64。

让它应用于您的方案:

numeric_feature_column_1 = tf.feature_column.numeric_column(key="_1",
                                                          dtype=tf.float64)

numeric_feature_column_2 = tf.feature_column.numeric_column(key="_2",
                                                          dtype=tf.float64)

numeric_feature_column_3 = tf.feature_column.numeric_column(key="_3",
                                                          dtype=tf.float64)

estimator   = tf.estimator.DNNClassifier(
              hidden_units=[500, 100],
              feature_columns=[numeric_feature_column_1,
                               numeric_feature_column_2,
                               numeric_feature_column_3],
              n_classes=2,
              optimizer = tf.train.AdagradOptimizer(learning_rate=0.003)
              )

我强烈建议您阅读以下这些链接,以更好地了解Tensorflow的数据管道以及它如何连接到Estimator类。