# BalancedAccuracy¶

Balanced accuracy.

Balanced accuracy is the average of recall obtained on each class. It is used to deal with imbalanced datasets in binary and multi-class classification problems.

## Parameters¶

• cm (river.metrics.confusion.ConfusionMatrix) – defaults to None

This parameter allows sharing the same confusion matrix between multiple metrics. Sharing a confusion matrix reduces the amount of storage and computation time.

## Attributes¶

• bigger_is_better

Indicate if a high value is better than a low one or not.

• requires_labels

Indicates if labels are required, rather than probabilities.

• works_with_weights

Indicate whether the model takes into consideration the effect of sample weights

## Examples¶

>>> from river import metrics
>>> y_true = [True, False, True, True, False, True]
>>> y_pred = [True, False, True, True, True, False]

>>> metric = metrics.BalancedAccuracy()
>>> for yt, yp in zip(y_true, y_pred):
...     metric = metric.update(yt, yp)

>>> metric
BalancedAccuracy: 62.50%

>>> y_true = [0, 1, 0, 0, 1, 0]
>>> y_pred = [0, 1, 0, 0, 0, 1]
>>> metric = metrics.BalancedAccuracy()
>>> for yt, yp in zip(y_true, y_pred):
...     metric = metric.update(yt, yp)

>>> metric
BalancedAccuracy: 62.50%


## Methods¶

get

Return the current value of the metric.

is_better_than
revert

Revert the metric.

Parameters

• y_true
• y_pred
• sample_weight – defaults to 1.0
update

Update the metric.

Parameters

• y_true
• y_pred
• sample_weight – defaults to 1.0
works_with

Indicates whether or not a metric can work with a given model.

Parameters

• model (river.base.estimator.Estimator)