kmeans
聚类算法概述
聚类是一种无监督学习**方法,目标是将相似的数据点分到同一组中。
核心问题:没有标签,难以评估和调参。
应用场景:数据分组、模式发现、异常检测等。
距离度量
聚类算法通常基于距离来衡量样本之间的相似性,常用距离包括:
1. 欧式距离
最常用的距离度量方式。
二维公式:
\( d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} \)
n维空间公式:
\( d = \sqrt{\sum_{i=1}^n (x_i - y_i)^2} \)
2. 曼哈顿距离
也称为“城市街区距离”,计算绝对轴距之和。
二维公式:
\( d = |x_1 - x_2| + |y_1 - y_2| \)
K-Means 算法
算法流程:
1. 随机选择 K 个点作为初始聚类中心。
2. 将每个样本点分配到最近的聚类中心。
3. 重新计算每个簇的中心(均值)。
4. 重复步骤2和3,直到中心点不再变化或达到最大迭代次数。
评估指标:
CH指标(Calinski-Harabasz Index)
衡量类内紧密度和类间分离度。
CH值越大,表示聚类效果越好(类内紧凑、类间分散)。
优点:
算法简单,实现容易。
处理大规模数据集时效率较高。
缺点:
需要预先指定聚类数 K。
对初始中心点敏感,容易陷入局部最优。
只能发现球状簇,难以处理非凸形状的簇。