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|} \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
)将返回相同的分数值。当真正的基本事实未知时,这对于测量同一数据集上两个独立标签分配策略的一致性很有用。阅读更多的 User Guide .
- 参数:
- labels_true形状类似阵列(n_samples,),dype =积分
A clustering of the data into disjoint subsets, called \(U\) in the above formula.
- labels_pred形状类似阵列(n_samples,),dype =积分
A clustering of the data into disjoint subsets, called \(V\) in the above formula.
- contingency形状的{类数组,稀疏矩阵} (n_classes_true,n_classes_pred),默认=无
由
contingency_matrix
功能如果value为None
,将被计算,否则使用给定的值,与labels_true
和labels_pred
忽视
- 返回:
- mi浮子
互信息,一个非负值,使用自然log以nats为单位进行测量。
参见
adjusted_mutual_info_score
根据机会进行调整的相互信息。
normalized_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...)