打字猴:1.700535258e+09
1700535258
1700535259 (3)定义代价函数:。
1700535260
1700535261 (4)令t=0,1,2,… 为迭代步数,重复下面过程直到 J 收敛:
1700535262
1700535263  
1700535264
1700535265
1700535266 对于每一个样本xi,将其分配到距离最近的簇 ;
1700535267
1700535268 (5.2)
1700535269
1700535270  
1700535271
1700535272
1700535273 对于每一个类簇k,重新计算该类簇的中心 .
1700535274
1700535275 (5.3)
1700535276
1700535277 K均值算法在迭代时,假设当前 J 没有达到最小值,那么首先固定簇中心{μk},调整每个样例xi所属的类别ci来让J函数减少;然后固定{ci},调整簇中心{μk}使J减小。这两个过程交替循环,J单调递减:当J递减到最小值时,{μk}和{ci}也同时收敛。
1700535278
1700535279 图5.2是K-means算法的一个迭代过程示意图。首先,给定二维空间上的一些样本点(见图5.2(a)),直观上这些点可以被分成两类;接下来,初始化两个中心点(图5.2(b)的棕色和黄色叉子代表中心点),并根据中心点的位置计算每个样本所属的簇(图5.2(c)用不同颜色表示);然后根据每个簇中的所有点的平均值计算新的中心点位置(见图5.2(d));图5.2(e)和图5.2(f)展示了新一轮的迭代结果;在经过两轮的迭代之后,算法基本收敛。
1700535280
1700535281
1700535282
1700535283
1700535284 图5.2 K均值聚类算法的迭代过程示意图
1700535285
1700535286 问题2 K均值算法的优缺点是什么?如何对其进行调优?
1700535287
1700535288 难度:★★★☆☆
1700535289
1700535290 分析与解答
1700535291
1700535292 K均值算法有一些缺点,例如受初值和离群点的影响每次的结果不稳定、结果通常不是全局最优而是局部最优解、无法很好地解决数据簇分布差别比较大的情况(比如一类是另一类样本数量的100倍)、不太适用于离散分类等。但是瑕不掩瑜,K均值聚类的优点也是很明显和突出的,主要体现在:对于大数据集,K均值聚类算法相对是可伸缩和高效的,它的计算复杂度是O(NKt)接近于线性,其中N是数据对象的数目,K是聚类的簇数,t是迭代的轮数。尽管算法经常以局部最优结束,但一般情况下达到的局部最优已经可以满足聚类的需求。
1700535293
1700535294 K均值算法的调优一般可以从以下几个角度出发。
1700535295
1700535296 (1)数据归一化和离群点处理。
1700535297
1700535298 K均值聚类本质上是一种基于欧式距离度量的数据划分方法,均值和方差大的维度将对数据的聚类结果产生决定性的影响,所以未做归一化处理和统一单位的数据是无法直接参与运算和比较的。同时,离群点或者少量的噪声数据就会对均值产生较大的影响,导致中心偏移,因此使用K均值聚类算法之前通常需要对数据做预处理。
1700535299
1700535300 (2)合理选择K值。
1700535301
1700535302 K值的选择是K均值聚类最大的问题之一,这也是K均值聚类算法的主要缺点。实际上,我们希望能够找到一些可行的办法来弥补这一缺点,或者说找到K值的合理估计方法。但是,K值的选择一般基于经验和多次实验结果。例如采用手肘法,我们可以尝试不同的K值,并将不同K值所对应的损失函数画成折线,横轴为K的取值,纵轴为误差平方和所定义的损失函数,如图5.3所示。
1700535303
1700535304
1700535305
1700535306
1700535307 图5.3 K均值算法中K值的选取:手肘法
[ 上一页 ]  [ :1.700535258e+09 ]  [ 下一页 ]