Keras + tf.Dataset +预测

时间:2018-12-04 00:00:12

标签: python tensorflow machine-learning keras

我正在使用一个同时包含数值+分类数据的数据集。 在训练和评估之前,我将分类特征转换为数字特征,最终得到了相同数量的特征,只是数字特征:

基于此笔记本:

https://www.kaggle.com/jannesklaas/explaining-income-classification-with-keras/notebook

我的模型使用的是keras + Estimator(model_to_estimator),该模型定义了Training and Serving函数。

总特征:14

  • 我的训练数据集,包含14个。
  • 我的评估数据集中包含14个。

输入功能:

  def input_fn(features, labels, shuffle, num_epochs, batch_size):
    dataset = tf.data.Dataset.from_tensor_slices((features, labels))    
    if shuffle:
        dataset = dataset.shuffle(buffer_size=256)
    dataset = dataset.repeat(num_epochs)
    dataset = dataset.batch(batch_size)
    return dataset

如果我想进行真实的预测,是否需要将数据转换为数字?

25, Private, 226802, 11th, 7, Never-married, Machine-op-inspct, Own-child, Black, Male, 0, 0, 40, United-States, <=50K

这是估算器服务功能:

train_input_fn = lambda: input_fn(features=X_train, 
                    labels=Y_train, 
                    shuffle=True, 
                    num_epochs=10, 
                    batch_size=40)

estimator.train(train_input_fn)

引用here

如何创建一个能够通过预测的功能?

1 个答案:

答案 0 :(得分:1)

数据应为数字。 estimator方法为其关联的输入函数构造图形,因此您可以使X_test和Y_test变得更通用,从而能够返回测试数据集,也可以编写一个新方法来执行此操作。目标可以传递给预测方法,因为只有在输入为元组形式时,它才会采用第一项。