一、基本原理
分类是指分类器根据已标注类别的训练集,通过训练可以对未知类别的样本进行分类。分类被称为监督学习。如果训练集的样本没有标注类别,那么就需要用到聚类。聚类是把相似的样本聚成一类,这种相似性通常以距离来度量。聚类被称为无监督学习。
聚类是指根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程。它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似。与分类规则不同,进行聚类前并不知道将要划分成几个组和什么样的组,也不知道根据哪些空间区分规则来定义组。
k-means是聚类算法中常用的一种,其中k的含义是指有k个cluster(簇)。由聚类的定义可知,一个样本应距离其所属cluster的质心是最近的(相较于其他k-1个cluster)。为了表示cluster,最简单有效的是取所有样本点平均,即质心(cluster centroid),这便是取名means的来由。
二、算法流程
1)随机选取k个初始点作为质心
2)计算每个点到k个质心的距离,并将其分给距离最近的质心所对应的簇
3)更新每个簇的质心,直到簇分配不发生改变为止