0
我想绘制tf.contrib.learn.LinearClassifier
我训练的ROC曲线。ROC曲线tf.contrib.learn.LinearClassifier
ROC曲线示出了作为鉴别阈值改变TPR和FPR的不同的值,但鉴别阈值始终是0.5。
我看不出告诉LinearClassifier
去改变它,或登录TPR和FPR针对不同的阈值。
我想绘制tf.contrib.learn.LinearClassifier
我训练的ROC曲线。ROC曲线tf.contrib.learn.LinearClassifier
ROC曲线示出了作为鉴别阈值改变TPR和FPR的不同的值,但鉴别阈值始终是0.5。
我看不出告诉LinearClassifier
去改变它,或登录TPR和FPR针对不同的阈值。
我终于想出了如何做到这一点。我需要添加自定义指标,如:
def recall_fn(predictions=None, labels=None, weights=None):
recall = tf.metrics.recall_at_thresholds(labels, predictions[:,1],[0.2,0.5,0.7])
return recall
然后定义我的指标,如:
with tf.variable_scope("metrics"):
validation_metrics = {
"recall":
tf.contrib.learn.MetricSpec(
metric_fn=recall_fn,
prediction_key=tf.contrib.learn.PredictionKey.PROBABILITIES)
}
终于在评估方法调用中使用它们:
results = m.evaluate(input_fn=lambda: chk_batch_input_fn(test_stream),
steps=100, metrics=validation_metrics)
不完全是ROC曲线,但它是我想要的反馈/指标。
使用'predict_proba'并自己进行阈值处理。 –