调整后的互信息

kas*_*asa 0 python scikit-learn

我正在尝试使用scikit learnPython 中的包计算两组观察值之间的调整互信息(AMI)。

观察结果如下:

观察1: https: //pastebin.com/eiN88UrL

观察2: https: //pastebin.com/zx9Ath60

我运行以下代码,得到一个负 AMI,这在理论上是不可能的。你能帮我弄清楚我做错了什么吗?

from sklearn.metrics.cluster import adjusted_mutual_info_score
def amis(x, y):
     return adjusted_mutual_info_score(x, y)
Run Code Online (Sandbox Code Playgroud)

Jan*_*nes 5

您得到的负输出是正确的。虽然互信息 (MI) 不能为负,但调整后的互信息 (AMI)可以为负sklearn 文档中也提到了这一点:

当两个分区相同(即完全匹配)时,AMI 返回值 1。随机分区(独立标签)的预期 AMI 平均约为 0,因此可能为负值。