Skip to content

GeometricMean

Geometric mean score.

The geometric mean is a good indicator of a classifier's performance in the presence of class imbalance because it is independent of the distribution of examples between classes. This implementation computes the geometric mean of class-wise sensitivity (recall).

\[ gm = \sqrt[n]{s_1\cdot s_2\cdot s_3\cdot \ldots\cdot s_n} \]

where \(s_i\) is the sensitivity (recall) of class \(i\) and \(n\) is the number of classes.

Parameters

  • cm

    Type → confusion.ConfusionMatrix | None

    Default → 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 = ['cat', 'ant', 'cat', 'cat', 'ant', 'bird', 'bird']
y_pred = ['ant', 'ant', 'cat', 'cat', 'ant', 'cat', 'bird']

metric = metrics.GeometricMean()

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

metric
GeometricMean: 69.34%

Methods

get

Return the current value of the metric.

is_better_than

Indicate if the current metric is better than another one.

Parameters

  • other

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


  1. Barandela, R. et al. “Strategies for learning in class imbalance problems”, Pattern Recognition, 36(3), (2003), pp 849-851.