聚类分析中的内部指标——Calinski-Harabasz Index(CH 指数)详解

聚类分析中的内部指标——Calinski-Harabasz Index(CH 指数)详解

在聚类分析(Clustering)中,内部指标(Internal Evaluation Metrics) 用于衡量聚类结果的质量,尤其是对无监督学习模型的效果进行定量评价。Calinski-Harabasz Index(CH 指数) 是衡量聚类质量的一个常用指标,它通过考量簇内样本的紧密度和簇间分离度来评估聚类的效果。


一、Calinski-Harabasz Index(CH 指数)概念

1. CH 指数的直观理解

Calinski-Harabasz Index(CH 指数) 通过计算簇间散度矩阵(即簇间的离散度)和簇内散度矩阵(即簇内的紧密度)之比来评估聚类质量。该指数的值越大,表示聚类的效果越好,聚类结果越有效。具体来说,CH 指数综合考虑了簇间的分离度和簇内的紧密度,能很好地反映聚类的质量。一般来说,我们希望簇间的离散度越大,簇内的紧密度越小,从而得到较大的 CH 指数。

2. CH 指数的计算公式

Calinski-Harabasz Index(CH 指数)的数学公式可以通过以下步骤推导得到。设数据集包含 n n n 个样本,并将其分为 K K K 个簇,其中每个簇 G k G_k Gk 中有 ∣ G k ∣ |G_k| Gk 个样本。

1. 计算簇内散度矩阵 S W S_W SW

簇内散度矩阵 S W S_W SW 用来衡量每个簇内部样本的分散程度,公式为:
S W = ∑ k = 1 K ∑ x i ∈ G k ( x i − c k ) ( x i − c k ) ⊤ , S_W = \sum_{k=1}^{K} \sum_{x_i \in G_k} (x_i - \mathbf{c}_k)(x_i - \mathbf{c}_k)^\top, SW=k=1KxiGk(xick)(xick),
其中:

  • x i x_i xi 是簇 G k G_k Gk 中的第 i i i 个样本;
  • c k \mathbf{c}_k ck 是簇 G k G_k Gk 的质心,表示簇内所有样本的均值:
    c k =
Calinski-Harabasz IndexCH 指数)是一种用于评估聚类算法效果的指标,它可以用于评估 KMeans 算法聚类效果。该指标计算簇内离散度和簇间离散度的比值,具体计算方法如下: 1. 计算每个簇内数据点该簇质心的距离的平方和,记为 $S_{i}$。 2. 计算所有簇内数据点整个数据集质心的距离的平方和,记为 $S_{T}$。 3. 计算簇间离散度 $B$,即所有簇质心整个数据集质心的距离的平方和,记为 $B$。 4. 计算 CH 指数,即 $CH = \frac{B/(k-1)}{S_{T}/(n-k)}$,其中 $k$ 表示簇的个数,$n$ 表示数据点的个数。 CH 指数越大,表示聚类效果越好。因为 CH 指数在计算时考虑了簇内离散度和簇间离散度之间的平衡,可以避免只考虑簇内离散度或者簇间离散度导致的评估偏差。在使用 PySpark 进行 KMeans 聚类时,可以使用 calinskiHarabaszScore 函数来计算 CH 指数,具体使用方法如下: ```python from pyspark.ml.clustering import KMeans from pyspark.ml.evaluation import ClusteringEvaluator # 加载数据 dataset = spark.read.format("libsvm").load("sample_kmeans_data.txt") # 训练 KMeans 模型 kmeans = KMeans().setK(2).setSeed(1) model = kmeans.fit(dataset) # 使用 CH 指数评估聚类效果 evaluator = ClusteringEvaluator() ch_score = evaluator.evaluate(model.transform(dataset), {evaluator.metricName: "silhouette"}) print("CH Score:", ch_score) ``` 其中,evaluator.metricName 参数设置为 "silhouette",是因为 ClusteringEvaluator 支持多种评估指标,需要明确指定使用的指标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuHz

喜欢就支持一下 ~ 谢谢啦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值