Kmeans原理

1、kmeans:k均值
原理:给定训练样本D,假设将这个样本划分成k个类,那么就有k个簇,用C表示。算法的均方误差为:


其中:u表示第i个簇的均值


E从某种程度上刻画了簇内样本围绕着簇均值向量的紧密程度,E越小表示簇内的样本相似性越高。

算法流程伪代码如下:


2、举例
我们看一下西瓜书上的例子,就能对上面的理论基本理解了~~~
我们现在有30个训练样本,每个样本含有两个属性。由于聚类算法属于无监督学习,所以这里我们不需要label。

(1)假设聚类簇数为3,算法的开始我们要随机的选3个样本作为初始的均值向量,即:

(2)首先考察第一个样本x1=(0.697,0.460),它与上面三个均值向量的距离分别是:0.369,0.506,0.166,因此将x1划分为第三个簇。类似的,将剩下的数据集一次考察,得到三个簇为:


(3)于是,求这三个簇新的均值向量,可以得到:


(4)重复上述的步骤(2)和(3),直到迭代的结果相同,也就是求到的均值不再发生变化。

最后得到的结果图:

3、kmeans优缺点
优点:
(1)计算时间短,速度快
(2)容易解释和理解
(3)聚类效果不错
缺点:
(1)对异常值敏感
(2)需要提前确定k值
(3)需要样本存在均值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在之前 因简书导入公式很麻烦,如果想获得更好的观看体验请移步https://www.zybuluo.com/ha...
    hainingwyx阅读 11,803评论 2 13
  • 考试说明 注重基础知识和概念的理解,因此解题中的计算过程不会很复杂,但是会有推公式的过程。本课程的重点知识包括:贝...
    艺术叔阅读 7,938评论 0 3
  • 1. 章节主要内容 “聚类”(clustering)算法是“无监督学习”算法中研究最多、应用最广的算法,它试图将数...
    闪电随笔阅读 10,479评论 1 24
  • 来源: http://www.douban.com/group/topic/14820131/ 调整变量格式: f...
    MC1229阅读 11,846评论 0 5
  • (转自http://www.douban.com/group/topic/14820131/,转自人大论坛) 调整...
    f382b3d9bdb3阅读 13,671评论 0 8