我正在尝试在 Tensorflow 中进行回归。我不确定我是否正确计算了 R^2,因为 Tensorflow 给我的答案与 sklearn.metrics.r2_score
不同 有人可以看看我下面的代码,让我知道我是否实现了图中的方程式正确。谢谢
total_error = tf.square(tf.sub(y, tf.reduce_mean(y)))
unexplained_error = tf.square(tf.sub(y, prediction))
R_squared = tf.reduce_mean(tf.sub(tf.div(unexplained_error, total_error), 1.0))
R = tf.mul(tf.sign(R_squared),tf.sqrt(tf.abs(R_squared)))
最佳答案
你计算的“R^2”是
与给定的表达式相比,您在错误的地方计算平均值。在进行除法之前,您应该在计算误差时取平均值。
unexplained_error = tf.reduce_sum(tf.square(tf.sub(y, prediction)))
total_error = tf.reduce_sum(tf.square(tf.sub(y, tf.reduce_mean(y))))
R_squared = tf.sub(1, tf.div(unexplained_error, total_error))
关于python - 如何在 Tensorflow 中计算 R^2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42351184/