rand_score#

sklearn.metrics.rand_score(labels_true, labels_pred)[source]#

Rand index.

The Rand Index computes a similarity measure between two clusterings by considering all pairs of samples and counting pairs that are assigned in the same or different clusters in the predicted and true clusterings [1] [2].

The raw RI score [3] is:

RI = (number of agreeing pairs) / (number of pairs)

Read more in the User Guide.

Parameters:
labels_truearray-like of shape (n_samples,), dtype=integral

Ground truth class labels to be used as a reference.

labels_predarray-like of shape (n_samples,), dtype=integral

Cluster labels to evaluate.

Returns:
RIfloat

Similarity score between 0.0 and 1.0, inclusive, 1.0 stands for perfect match.

See also

adjusted_rand_score

Adjusted Rand Score.

adjusted_mutual_info_score

Adjusted Mutual Information.

References

Examples

Perfectly matching labelings have a score of 1 even

>>> from sklearn.metrics.cluster import rand_score
>>> rand_score([0, 0, 1, 1], [1, 1, 0, 0])
1.0

Labelings that assign all classes members to the same clusters are complete but may not always be pure, hence penalized:

>>> rand_score([0, 0, 1, 2], [0, 0, 1, 1])
np.float64(0.83...)