tf.keras.metrics.R2Score

Computes R2 score.

Inherits From: Metric, Layer, Module

This is also called the coefficient of determination.

It indicates how close the fitted regression line is to ground-truth data.

  • The highest score possible is 1.0. It indicates that the predictors perfectly accounts for variation in the target.
  • A score of 0.0 indicates that the predictors do not account for variation in the target.
  • It can also be negative if the model is worse than random.

This metric can also compute the "Adjusted R2" score.

class_aggregation Specifies how to aggregate scores corresponding to different output classes (or target dimensions), i.e. different dimensions on the last axis of the predictions. Equivalent to multioutput argument in Scikit-Learn. Should be one of None (no aggregation), "uniform_average", "variance_weighted_average".
num_regressors Number of independent regressors used ("Adjusted R2" score). Defaults to 0 (standard R2 score).
name Optional. string name of the metric instance.
dtype Optional. data type of the metric result.

Example:

y_true = np.array([[1], [4], [3]], dtype=np.float32)
y_pred = np.array([[2], [4], [4]], dtype=np.float32)
metric = tf.keras.metrics.R2Score()
metric.update_state(y_true, y_pred)
result = metric.result()
result.numpy()
0.57142854

Methods

merge_state

View source

Merges the state from one or more metrics.

This method can be used by distributed systems to merge the state computed by different metric instances. Typically the state will be stored in the form of the metric's weights. For example, a tf.keras.metrics.Mean metric contains a list of two weight values: a total and a count. If there were two instances of a tf.keras.metrics.Accuracy that each independently aggregated partial state for an overall accuracy calculation, these two metric's states could be combined as follows:

m1 = tf.keras.metrics.Accuracy()
_ = m1.update_state([[1], [2]], [[0], [2]])
m2 = tf.keras.metrics.Accuracy()
_ = m2.update_state([[3], [4]], [[3], [4]])
m2.merge_state([m1])
m2.result().numpy()
0.75

Args
metrics an iterable of metrics. The metrics must have compatible state.

Raises
ValueError If the provided iterable does not contain metrics matching the metric's required specifications.

reset_state

View source

Resets all of the metric state variables.

This function is called between epochs/steps, when a metric is evaluated during training.

result

View source

Computes and returns the scalar metric value tensor or a dict of scalars.

Result computation is an idempotent operation that simply calculates the metric value using the state variables.

Returns
A scalar tensor, or a dictionary of scalar tensors.

update_state

View source

Accumulates statistics for the metric.

Args
*args

**kwargs A mini-batch of inputs to the Metric.