聚类评估指标简介
在数据科学领域,聚类是一种常用的无监督学习方法,用于将数据集中的样本划分为若干个簇,使得同一簇内的样本相似度较高,而不同簇之间的样本相似度较低。为了衡量聚类结果的质量,引入了同质性、完备性和V-度量这三个关键指标。
同质性指标衡量的是聚类结果中每个簇是否只包含单一类别的数据点。如果一个聚类结果满足同质性,那么它的所有簇都只包含属于同一类别的样本。同质性指标的取值范围在0.0到1.0之间,值越大表示聚类结果的同质性越好。
完备性指标衡量的是聚类结果中每个类别的所有数据点是否都包含在同一个簇中。如果一个聚类结果满足完备性,那么属于同一类别的所有数据点都位于同一个簇内。完备性指标的取值范围同样在0.0到1.0之间,值越大表示聚类结果的完备性越好。
V-度量是同质性和完备性的调和平均值,它综合考虑了这两个指标的表现。V-度量的取值范围也在0.0到1.0之间,值越大表示聚类结果的质量越高。V-度量具有对称性,即交换真实类别标签和预测类别标签不会影响V-度量的值。这一点与同质性和完备性不同。
这三个指标都与类别标签的绝对值无关,即类别标签的排列不会影响指标的值。这意味着这些指标更加关注聚类结果的结构,而不是具体的标签值。
在实际应用中,可以通过调整beta参数来平衡同质性和完备性在V-度量中的权重。当beta大于1时,完备性在计算中的权重更大;当beta小于1时,同质性在计算中的权重更大。默认情况下,beta的值为1.0,表示同质性和完备性在V-度量中具有相同的权重。
代码示例
以下是使用Python的scikit-learn库计算同质性、完备性和V-度量的示例代码:
from sklearn.metrics import homogeneity_completeness_v_measure
# 真实类别标签
y_true = [0, 0, 1, 1, 2, 2]
# 预测的聚类标签
y_pred = [0, 0, 1, 2, 2, 2]
# 计算同质性、完备性和V-度量
homogeneity, completeness, v_measure = homogeneity_completeness_v_measure(y_true, y_pred)
print(f"同质性: {homogeneity:.4f}")
print(f"完备性: {completeness:.4f}")
print(f"V-度量: {v_measure:.4f}")