假设我们想要更改Abalone regression example,以便有一个额外的评估指标。名为pctWrong
的指标等于错误为>的预测百分比。 1%:
=== pseudocode ===
pctWrong = countTrue(if (|y-y_hat|/y > 1%) True else False) / countTotal
=== Python ===
105 # Calculate additional eval metrics
106 eval_metric_ops = {
107 "rmse": tf.metrics.root_mean_squared_error(
108 tf.cast(labels, tf.float64), predictions),
109 "pctWrong": ???
110 }
您将如何定义此类指标?我找到了tf.metrics.percentage_below(),这可能会有所帮助,但我不知道如何使用它。特别是我不知道如何获得values
参数。
答案 0 :(得分:0)
更新:毕竟这并不困难。下面的代码有点粗糙,但它有效。
# Calculate additional eval metrics
ys = tf.cast(labels, tf.float64)
y_hats = predictions
losses = tf.divide(tf.abs(tf.subtract(ys, y_hats)), ys)
accuracies = -losses
eval_metric_ops = {
"rmse": tf.metrics.root_mean_squared_error(tf.cast(labels, tf.float64), predictions),
"pctWrong": tf.metrics.percentage_below(accuracies, -0.01)
}