k-means算法:
聚类中心的向量值可任意设定,例如可选开始的 K K个模式样本的向量值作为初始聚类中心。
则 x∈Sj(k) x∈Sj(k),其中 k k为迭代运算的次序号,第一次迭代 k=1 k=1, Sj Sj表示第 j j个聚类,其聚类中心为 zj zj。
第三步:计算各个聚类中心的新的向量值, zj(k+1),j=1,2,⋯,K zj(k+1),j=1,2,⋯,K,求各聚类域中所包含样本的均值向量:
其中 Nj Nj为第 j j个聚类域 Sj Sj中所包含的样本个数。以均值向量作为新的聚类中心,可使如下聚类准则函数最小:
在这一步中要分别计算 K K个聚类中的样本均值向量,所以称之为 K K-均值算法。
第四步:若 zj(k+1)≠zj(k),j=1,2,⋯,K zj(k+1)≠zj(k),j=1,2,⋯,K,则返回第二步,将模式样本逐个重新分类,重复迭代运算; 若 zj(k+1)=zj(k),j=1,2,⋯,k zj(k+1)=zj(k),j=1,2,⋯,k,则算法收敛,计算结束。
K-均值分类算法实例
第一步:取 K=2 K=2,并选
z1(1)=x1=(00)T,z2(1)=x2=(10)T z1(1)=x1=(00)T,z2(1)=x2=(10)T
第二步:因 ||x1−z1(1)||<||x1−z2(1)|| ||x1−z1(1)||<||x1−z2(1)||,故 x1∈S1(1) x1∈S1(1)
因 ||x2−z1(1)||>||x2−z2(1)|| ||x2−z1(1)||>||x2−z2(1)||,故 x2∈S2(1) x2∈S2(1)
因 ||x3−z1(1)||<||x3−z2(1)|| ||x3−z1(1)||<||x3−z2(1)||,故 x3∈S1(1) x3∈S1(1)
……
得到:
S1(1)={x1, x3}, S2(1)={x2, x4, x5, …, x20}
第三步:计算新的聚类中心
第四步:因 zj(2)≠zj(1),j=1,2 zj(2)≠zj(1),j=1,2,返回第二步;
第二步(返回1):由新的聚类中心,得到:
因此
S1(2)={x1,x2,⋯,x8} S1(2)={x1,x2,⋯,x8}
S2(2)={x9,x10,⋯,x20} S2(2)={x9,x10,⋯,x20}
第三步(返回1):计算聚类中心
第四步(返回1):因 zj(3)≠zj(2),j=1,2 zj(3)≠zj(2),j=1,2,返回第二步;
第二步(返回2):分类结果与前一次迭代的结果相同,即 S1(4)=S1(3),S2(4)=S2(3) S1(4)=S1(3),S2(4)=S2(3);
第三步(返回2):聚类中心与前一次迭代的结果相同;
第四步(返回2):因 zj(4)=zj(3),j=1,2 zj(4)=zj(3),j=1,2,算法收敛,得到最终的聚类中心。
,