简介
kmeans聚类算法自1965年已经提出50多年,具有容易实施,简单,高效的优点,也有很多学者对kmeans算法进行改进,得到了很多优化策略。
kmeans是基于划分的聚类方法,将样本集组成的矢量空间划分成多个区域
Siki=1
,每个区域都存在在一个区域相关的表示
ciki=1
,通常称为区域中心,kmeans的目标是将数据集划分成k簇,使得划分后的k类子集合满足误差平方和最小(SSE),
J(s)=argmin∑∑||x−ci||22
其中 x 是空间中的点,表示给定的数据对象,
更新聚类中心公式:
ct+1i=1|sti|∑xi
经典算法
经典的kmeans算法作为无监督分类方法,需要预先知道要分的类数K,其算法流程如下:
算法k-means 用于聚类
输入:
- k:簇的数目
- D:包含n个对象的数据集
输出:
- k个簇的集合
方法:
- 初始化k个对象作为簇中心
- loop
- 分配各样本到相近的聚类集合中
- 更新聚类中心
- until 聚类中心变化在允许误差内
复杂度分析
t=(t样本分配+t更新聚类中心)∗k∗t
t样本分配=knd (d表示平方和)
t更新聚类中心=nd
算法优化-Kmeans++
–待续