互信息评分#
- sklearn.metrics.mutual_info_score(labels_true, labels_pred, *, contingency=None)[source]#
两个聚类之间的互信息。
互信息是衡量相同数据的两个标签之间相似度的一种度量。其中\(|U_i|\)是簇\(U_i\)中样本的数量,\(|V_j|\)是簇\(V_j\)中样本的数量,聚类\(U\)和\(V\)之间的互信息计算如下:
\[MI(U,V)=\sum_{i=1}^{|U|} \sum_{j=1}^{|V|} \frac{|U_i\cap V_j|}{N} \log\frac{N|U_i \cap V_j|}{|U_i||V_j|}\]此度量独立于标签的绝对值:类或簇标签值的排列不会以任何方式改变分数值。
此外,此度量是对称的:将\(U\)(即
label_true
)与\(V\)(即label_pred
)互换将返回相同的分数值。当不知道真实的真实情况时,这对于测量两种独立的标签分配策略在相同数据集上的一致性非常有用。在用户指南中了解更多信息。
- 参数:
- labels_true形状为 (n_samples,) 的类数组,dtype=integral
将数据聚类成不相交子集,在上式中称为\(U\)。
- labels_pred形状为 (n_samples,) 的类数组,dtype=integral
将数据聚类成不相交的子集,在上式中称为\(V\)。
- contingency{array-like, sparse matrix} 形状为 (n_classes_true, n_classes_pred),默认值=None
由
contingency_matrix
函数给出的列联表。如果值为None
,则会计算它,否则使用给定的值,并忽略labels_true
和labels_pred
。
- 返回:
- mi浮点数
互信息,一个非负值,使用自然对数以奈特为单位测量。
另请参见
adjusted_mutual_info_score
针对机会调整的互信息。
归一化互信息评分
标准化互信息。
备注
使用的对数是自然对数(以 e 为底)。
示例
>>> 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) np.float64(0.056...)
图库示例#
聚类性能评估中的机会调整