mutual_info_score#
- sklearn.metrics.mutual_info_score(labels_true, labels_pred, *, contingency=None)#
互信息在两个聚类之间的相似性度量。
互信息是衡量同一数据的两组标签之间相似性的度量。其中 \(|U_i|\) 是聚类 \(U_i\) 中的样本数量,\(|V_j|\) 是聚类 \(V_j\) 中的样本数量,聚类 \(U\) 和 \(V\) 之间的互信息给出如下:
\[MI(U,V)=\sum_{i=1}^{|U|} \sum_{j=1}^{|V|} \]- rac{|U_i\cap V_j|}{N}
log
rac{N|U_i cap V_j|}{|U_i||V_j|}
该度量独立于标签的绝对值:类或聚类标签值的排列不会以任何方式改变分数值。
该度量还是对称的:切换 \(U\) (即
label_true
)和 \(V\) (即label_pred
)将返回相同的分数值。当真实的基础真相未知时,这可以用于衡量同一数据集上两种独立标签分配策略的一致性。更多信息请参阅 用户指南 。
- Parameters:
- labels_truearray-like of shape (n_samples,), dtype=integral
数据的分区聚类,称为上述公式中的 \(U\) 。
- labels_predarray-like of shape (n_samples,), dtype=integral
数据的分区聚类,称为上述公式中的 \(V\) 。
- contingency{array-like, sparse matrix} of shape (n_classes_true, n_classes_pred), default=None
由
contingency_matrix
函数给出的列联矩阵。如果值为None
,则将计算它,否则使用给定值,忽略labels_true
和labels_pred
。
- Returns:
- mifloat
互信息,一个非负值,使用自然对数以纳特为单位测量。
See also
adjusted_mutual_info_score
针对偶然性调整的互信息。
normalized_mutual_info_score
归一化互信息。
Notes
使用的对数是自然对数(以 e 为底)。
Examples
>>> from sklearn.metrics import mutual_info_score >>> labels_true = [0, 1, 1, 0, 1, 0] >>> labels_pred = [0, 1, 0, 0, 1, 1] >>> mutual_info_score(labels_true, labels_pred) 0.056...
Gallery examples#
聚类性能评估中的机会调整