我有一个看起来基本上像这样的数据集
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
这个论点?
它实际上很简单......虽然我花了一段时间来理解它。
仔细看看下面的代码:
# 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类。