sklearn.metrics.cluster
.pair_confusion_matrix¶
- sklearn.metrics.cluster.pair_confusion_matrix(labels_true, labels_pred)[source]¶
Pair confusion matrix arising from two clusterings [1].
The pair confusion matrix \(C\) computes a 2 by 2 similarity matrix between two clusterings by considering all pairs of samples and counting pairs that are assigned into the same or into different clusters under the true and predicted clusterings.
Considering a pair of samples that is clustered together a positive pair, then as in binary classification the count of true negatives is \(C_{00}\), false negatives is \(C_{10}\), true positives is \(C_{11}\) and false positives is \(C_{01}\).
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:
- Cndarray of shape (2, 2), dtype=np.int64
The contingency matrix.
See also
rand_score
Rand Score.
adjusted_rand_score
Adjusted Rand Score.
adjusted_mutual_info_score
Adjusted Mutual Information.
References
Examples
Perfectly matching labelings have all non-zero entries on the diagonal regardless of actual label values:
>>> from sklearn.metrics.cluster import pair_confusion_matrix >>> pair_confusion_matrix([0, 0, 1, 1], [1, 1, 0, 0]) array([[8, 0], [0, 4]]...
Labelings that assign all classes members to the same clusters are complete but may be not always pure, hence penalized, and have some off-diagonal non-zero entries:
>>> pair_confusion_matrix([0, 0, 1, 2], [0, 0, 1, 1]) array([[8, 2], [0, 2]]...
Note that the matrix is not symmetric.