Kmeans算法及相关优化
本文主要参考https://www.cnblogs.com/pinard/p/6164214.html
和https://www.cnblogs.com/jojo123/p/6822908.html,百度百科
Kmeans算法简介
(1)Kmeans算法是一种无监督聚类算法。
(2)算法的目标:给定样本集,根据样本之间的距离大小,将样本划分为K个簇,让簇内的点之间的距离尽可能近,让簇间的点的距离尽可能的远。
(3)算法的思路:在给定K值和K个初始类簇中心点的情况下,把每个点(样本数据)分到距离最近的类簇中心点代表的类簇中。分配完毕后,根据一个类簇中的所有点重新计算类簇中心点,然后再迭代的进行分配点和更新类簇中心点的过程,直到没有(或者是预期要求)点被分配到其它类簇中,没有(或达到预期要求)类簇中心点再发生更新,误差平方和最小(或达到某一条件)。
假设簇划分为( C 1 C_{1} C1… C k C_{k} Ck),误差平方和E表示为
E = ∑ i = 1 k ∑ x ∈ C i ∣ x − u i ∣ 2 E = \sum_{i=1}^k\sum_{x\in C_{i}}|x - u_{i}|^2 E=