如何在tf.estimator.DNNClassifier中指定要素列?

问题描述 投票:0回答:1

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

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这个论点?

tensorflow
1个回答
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类。

© www.soinside.com 2019 - 2024. All rights reserved.