认识KMeans
KMeans是聚类算法,属于无监督学习,在不知数据所属类别及数据量的情况下,依据数据自身所含的特点对数据进行聚类,
实现步骤
==1.==首先确定一个K值,即我们希望将数据集,一般为数据量的平方根,
2. 从数据集中随机选择k个数据点作为质心。
3. 对数据集中的每个点计算其与每个执行的距离(如欧式距离),离哪个质心越近,就将其划分到质心所属的集合
4. 将所有的数据集归好集合,一共有k个集合,然后重新计算每个集合的质心
5. 如果计算出来的质心和原来的质心距离小于某个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们认为聚类已经达到期望结果,算法终止
6. 如果新质心和原质心距离变化很大,则迭代3~5步
KMeans术语
簇:所有数据的点集合,簇中的对象是相似的
质心:簇中所有点的中心(计算所有点的中心)
KMeans优缺点
优点:
①:原理简单,实现容易,收敛速度快
②:当结果簇是密集的,而簇与簇之间区别明显时,他的效果好
③:主要需要调节的参数仅仅时簇数k
缺点:
①:K值需要预先给定,很多情况下K值是很难估计的
②:对于初始选取的质心是敏感的,不同的随机种子得到的聚类结果完全不同,对结果影响大
③:对噪音和异常点比较敏感,用来检测异常值
④:采用迭代的方法,可能只能得到局部的最优解,而无法得到全局的最优解