K-均值的意思是它可以发现K个不同的组类,且每个组类的中心采用组中所包含的值的均值计算而成,也就是选取每组数据的平均值作为数据的“中心”. 因此,我们首先需要组类识别,它与传统意义的分类不同,分类是我们事先知道它是属于哪一类,也就是像SVM之类的监督型算法,聚类是没有事先定义,就像我们不知道自己未来会分成哪几类人.

因此聚类也被称为无监督分类. K-均值算法的工作流程非常简单大致如下:

  1. 挑选K个初始点作为起始的质心(也就是中心点,一般随机选择)
  2. 为数据集中的每个点找到距离它最近的质心,并把这个点分给这个组类(去质心那里拜码头)
  3. 将每个组类的所有点进行取平均值作为新的质心(重新挑老大)

从上面三个步骤我们可以看到,“最近”的质心,也就是需要进行距离计算,当然使用不同的距离计算方法,得到的聚类效果也是不同的。

K-均值优点是容易实现,就是取平均值嘛;缺点是在处理大规模数据时候收敛速度较慢;适合的数据类型:数值型数据。

既然聚类分析是按照对象之间的相似性和相异性来聚,那么如何来刻画对象的相似(相异)程度呢?这就今天要介绍的尺子——距离(distance)。

距离是两对象之间的时间或空间相隔远近的度量,记d(A,B)为对象A与对象B之间的距离,距离要满足下面3条公理.

  1. 非负性, 即 d(A,B)≥0,当且仅当A和B在一起的时候,d(A,B)=0;
  2. 对称性,即d(A,B)=d(B,A) , 也就是从A到B的距离与从B到A的距离是相等的.
  3. 三角不等式性,即d(A,B)≤d(A,C)+d(C,B) 如果在平面上很好理解,三角形两边之和不小于第三边.

满足这3条公理的距离也有好几种,先从最简单的入手,假设有n个样本,每个样本有k个指标,数据矩阵如下表所示

image.png

第i个样本为image.png
第j个样本为image.png
把每个样本看成p维空间里的质点,记(i)与(j)的距离为d(i,j) , 那么

绝对距离

image.png

欧几里得距离

image.png

闵科夫斯基距离

image.png

切比雪夫距离

image.png

不同的距离定义有不同的适用范围,一般来说:

  • 绝对距离直接把两个样本对应指标差值取绝对值求和,可谓简单粗暴;
  • 欧几里得距离通常采用的是原始数据,而并非正规化后的数据,比如某个指标在10-100内取值,那么便可以直接使用,不需要将其规范到[0,1]区间再度量,否则便消除欧几里得距离的意义了;
  • 闵科夫斯基距离把欧几里得距离一般化,应对高维情况;
  • 切比雪夫距离呢?因为取了最大值,故两个样本最大差异最后归根到底可能落在少数个指标上,打个比方,我们要对比班里两个男同学,他们都很帅,家境都很好,成绩都很优异,但是,一个是痞子性格,一个一本正经性格,于是乎用切比雪夫距离来衡量可能就在他们性格上.