一般而言,我们应该在估算期间获得的准确度与预测期间达到的准确度之间进行哪种对齐?简而言之,如果我们在估算期间达到85%的准确度,我们是否应该在预测期间得到类似的结果?还有一些其他帖子讨论预测准确性问题,但似乎没有人直接提出这个问题 .

更具体地说,我使用DNNClassifier来学习1000行特征数据,每行有53个特征(即列) . 然后对100个样品进行测试 . 该模型配置为针对两个标签进行分类:0和1,并在下面实现预测精度 .

INFO:tensorflow:保存步骤45300的评估摘要:准确度:0.846154准确度/ baseline_label_mean:0.197802准确度/ threshold_0.500000_mean:0.846154 auc:0.743912 global_step:45300标签/ actual_label_mean:0.197802标签/ prediction_mean:0.283492损失:0.398202 precision / positive_threshold_0.500000_mean :1.0召回/ positive_threshold_0.500000_mean:0.222222

然而,当在预测步骤期间使用15个示例,并且其中50%应该被标记为1时,它们通常都返回为0 . 有时,单个示例将被正确分类为1 .

例如:预测:[0,0,0,0,0,0,0,0,0,0,0,0,0,0]

我的DNNClassifier配置如下:

m = tf.contrib.learn.DNNClassifier(model_dir=model_dir,
                                       feature_columns=deep_columns,
                                       hidden_units=[32, 16],
                                       activation_fn=tf.nn.relu,
                                       n_classes=2,
                                       optimizer=tf.train.AdagradOptimizer(
                                       learning_rate=0.1))

预测函数调用如下:

y = m.predict(input_fn = lambda: input_fn(df_predict))
    predictions = list(itertools.islice(y, 15))
    print("Predictions: {}".format(str(predictions)))
    for i in predictions:
        print(i)

我有两个问题 . (1)我是否正确地假设估计和预测精度之间应该存在直接相关性,因此85%的估计精度应该导致类似的预测精度?

(2)训练完成时提供的其他结果(即“labels / prediction_mean:0.283492”)是否提供与低水平预测准确度相关的信息?我无法在TensorFlow文档中找到这些结果标签的定义,如果我错过了某些内容,我很抱歉 .

非常感谢您对此的任何想法 .