# W3cubDocs

/TensorFlow Python

# tf.contrib.metrics.streaming_pearson_correlation

```tf.contrib.metrics.streaming_pearson_correlation(
predictions,
labels,
weights=None,
metrics_collections=None,
name=None
)
```

See the guide: Metrics (contrib) > Metric `Ops`

Computes Pearson correlation coefficient between `predictions`, `labels`.

The `streaming_pearson_correlation` function delegates to `streaming_covariance` the tracking of three [co]variances:

• `streaming_covariance(predictions, labels)`, i.e. covariance
• `streaming_covariance(predictions, predictions)`, i.e. variance
• `streaming_covariance(labels, labels)`, i.e. variance

The product-moment correlation ultimately returned is an idempotent operation `cov(predictions, labels) / sqrt(var(predictions) * var(labels))`. To facilitate correlation computation across multiple batches, the function groups the `update_op`s of the underlying streaming_covariance and returns an `update_op`.

If `weights` is not None, then it is used to compute a weighted correlation. NOTE: these weights are treated as "frequency weights", as opposed to "reliability weights". See discussion of the difference on https://wikipedia.org/wiki/Weighted_arithmetic_mean#Weighted_sample_variance

#### Args:

• `predictions`: A `Tensor` of arbitrary size.
• `labels`: A `Tensor` of the same size as predictions.
• `weights`: Optional `Tensor` indicating the frequency with which an example is sampled. Rank must be 0, or the same rank as `labels`, and must be broadcastable to `labels` (i.e., all dimensions must be either `1`, or the same as the corresponding `labels` dimension).
• `metrics_collections`: An optional list of collections that the metric value variable should be added to.
• `updates_collections`: An optional list of collections that the metric update ops should be added to.
• `name`: An optional variable_scope name.

#### Returns:

• `pearson_r`: A `Tensor` representing the current Pearson product-moment correlation coefficient, the value of `cov(predictions, labels) / sqrt(var(predictions) * var(labels))`.
• `update_op`: An operation that updates the underlying variables appropriately.

#### Raises:

• `ValueError`: If `labels` and `predictions` are of different sizes, or if `weights` is the wrong size, or if either `metrics_collections` or `updates_collections` are not a `list` or `tuple`.