一、话说kmeans
KMeans算法MacQueen在1967年提出的,是最简单与最常见数据分类方法之一并且最为一种常见数据分析技术在机器学习、数据挖掘、模式识别、图像分析等领域都用应用。如果从分类角度看KMeans属于硬分类即需要人为指定分类数目,而MeanSift分类方法则可以根据收敛条件自动决定分类数目。从学习方法上来说KMeans属于非监督学习方法即整个学习过程中不需要人为干预的学习方法,自动完成整个数据集合分类。对于给定的数据集合DS (Data Set)与输入的分类数目K,KMeans的整个工作原理可以描述如下:
根据输入的分类数目K定义K个分类,每个分类选择一个中心点
对DS中每个数据点做如下操作
计算它与K个中心点之间的距离
把数据点指定属于K个中心点中距离最近的中心点所属的分类
对K个分类中每个数据点计算平均值得到新的K个中心点
比较新K个中心点之间与第一步中已经存在的K个中心差值
当两者之间的差值没有变化或者小于指定阈值,结束分类
当两者之间的差值或者条件不满足时候,用新计算的中心点值做为K个分类的新中心点,继续执行2~4步。直到条件满足退出。
从数学的角度来说KMeans就是要找到K个分类而且他们的中心点到各个分类中各个数据的之间差值平方和最小化,而实现这个过程就是要通过上述2~4步不断的迭代执行,直到收敛为止。公式表示如下: