聚类分析--k均值聚类

无监督聚类

模型表示

给定样本集 D = { x 1 , . . . , x m } D=\{x_1,...,x_m\} ,针对聚类所得簇划分 C = { C 1 , . . . , C k } C=\{C_1,...,C_k\} ,最小化平方误差SSE:
m i n E = i = 1 k x C i x μ i 2 min \quad E=\sum_{i=1}^k\sum_{x\in C_i}||x-\mu_i||^2 其中, μ i = 1 C i x C i x \mu_i=\frac{1}{|C_i|}\sum_{x\in C_i}x 是簇 C i C_i 的均值向量。

算法描述

重复进行直到收敛{

   1.将每个样本向量按照欧式距离归入最近的类;
   2.重新调整每个聚类中心

}

k的确定

  • 手肘法
    SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数。
    在这里插入图片描述
    图片像一只手肘,肘处的K即为最佳K值:K=2。

  • 轮廓系数法
    求出所有样本的轮廓系数后再求平均值就得到了平均轮廓系数。平均轮廓系数的取值范围为[-1,1],且簇内样本的距离越近,簇间样本距离越远,平均轮廓系数越大,聚类效果越好。
    某个样本点 X i X_i 的轮廓系数定义如下:
    S = b a m a x ( a , b ) S=\frac{b-a}{max(a,b)} 其中,a是 X i X_i 与同簇的其他样本的平均距离,称为凝聚度,b是 X i X_i 与最近簇中所有样本的平均距离,称为分离度。

初始点选择方法

选用层次聚类算法进行初始聚类,然后从k个类别中分别随机选取k个点,来作为kmeans的初始聚类中心点。

层次聚类算法

先将n个样本各自看成一类,计算样本之间和类与类之间的相似度,选择最大相似度的两类合并为一个新类, 重复这一过程,直至所有的样本都归为一类为止.

猜你喜欢

转载自blog.csdn.net/weixin_38493025/article/details/84313847
今日推荐