同质性度量是一种评估聚类标签质量的方法,它确保聚类结果中的每个簇只包含属于单一类别的数据点。这种度量与标签的绝对值无关,即类别或簇标签值的排列不会影响得分。需要注意的是,同质性度量不是对称的,交换真实标签和预测标签将返回不同的完整性得分。
在使用同质性度量时,通常有两个输入参数:真实标签(labels_true)和预测标签(labels_pred)。真实标签是作为参考的基准类别标签,而预测标签则是需要评估的聚类标签。该度量的输出是一个介于0.0和1.0之间的浮点数,其中1.0表示完全同质的标签。
同质性度量与其他聚类评估指标如完整性度量和V-度量(一种基于条件熵的外部聚类评估指标)有关。这些指标共同帮助全面评估聚类算法的性能。
在实际应用中,可以通过以下代码示例来计算同质性得分。首先,需要从sklearn.metrics.cluster模块导入homogeneity_score函数。然后,可以通过传递真实标签和预测标签来计算得分。例如,如果一个完美的标签分配是同质的,那么得分将为1.0。
from sklearn.metrics.cluster import homogeneity_score
# 完美标签分配的同质性得分
homogeneity_score([0, 0, 1, 1], [1, 1, 0, 0])
# 输出: np.float64(1.0)
# 非完美标签分配但仍然是同质的得分
homogeneity_score([0, 0, 1, 1], [0, 0, 1, 2])
# 输出: 1.000000
# 包含不同类别样本的簇不是同质的
homogeneity_score([0, 0, 1, 1], [0, 1, 0, 1])
# 输出: 0.0...
homogeneity_score([0, 0, 1, 1], [0, 0, 0, 0])
# 输出: 0.0...