本篇博客将详解聚类的基础内容,为之后的几种聚类算法做铺垫。
本文中图片来自自己的PPT或者百度百科,没有剽窃,没有剽窃,没有剽窃!
聚类属于无监督学习。再无监督学习中,训练样本是没有标记的,目标通过对训练样本的学习来揭示数据的内在规律,性质,为进一步的数据分析提供基础,而聚类是其中研究最多,引用最广的。
聚类的任务:聚类试图将数据集中的样本,划分为若干个(通常是)不相交的子集,而这每个子集称之为簇,通过这样的划分之后,每个子集可能会对应一个潜在的概念,或者说对应一个类。这些概念聚类算法是不知道的,需要使用者对其进行命名。
从集合的角度来看,我们可以直观的看图:
将一个集合D(样本空间包含m个样本)划分为N个(通常)不相交的子集,每个子集中包含了若干个样本,而每个样本有自己的簇标记,聚类的结果最终可用一个包含了m个元素的簇标记向量来表示,如下:
聚类的性能度量也叫聚类的"有效性指标",与监督学习中的性能度量相似,聚类的性能度量主要有两种功能
从直观的角度来看,我们希望的聚类结果,自然是"物以类聚",从簇的角度来看,就是簇内的距离尽可能的小,而簇间的距离尽可能的大。专业化一点就是簇内相似度高,簇间相似度低。
度量聚类结果的方法通常分为两种:
以上为聚类常用的几种外部指标值,不难想象,当a越大时,其他值固定时,意味着聚类结果与参考中相同的对数越多,且以上值越大,意味着聚类的结果越准确,所以当值越大时,聚类的结果越好。
对于内部指标,我们需要考虑结果簇的划分。
对于BDI的值,当其他值固定avg越小时,意味着簇内相似度越高,所以结果就越好。但是对于DI来说却不同,当簇间最小距离最大的时候,意味着簇间相似度越低,也就以为着结果越好,因此
BDI越大,结果越好。
DI越小,结果越好。
这里注意不要搞反了。
我们在前文中可以看到一个dist(.)函数,该函数负责计算样本间的距离,那么样本间的距离是怎么算的呢,我们来看下文。
首先dist作为一个距离计算的函数,它需要符合一些基本的性质:
这四个性质可以从直观的角度理解,不需要细讲。
我们在计算距离时常用的闵可夫斯基距离,也就是:
很显然,当p为1时,该距离为曼哈顿距离,当p为2时,该距离为欧几里得距离(欧氏距离)。
所谓的欧式距离,也就是在一个n维的空间中两点的真实距离,实际距离,也可以说是该向量的自然长度,总之就那么回事。
曼哈顿距离:曼哈顿距离也是闵可夫斯基提出的,笼统的概念来说,就是两个点在标准坐标系上的绝对轴距总和。
闵可夫斯基:犹太人,四维时空理论的创建者,同时也是爱因斯坦的老师,一生传奇,老天才了,知道他厉害就行了。
下图可以清晰的反映出,绿色为欧氏距离,红色,黄色,蓝色都是曼哈顿距离的值。
那么我们继续看,在利用闵可夫斯基距离计算时,对于常规的数字,小数,构成的坐标,向量来说都很容易计算,但是如果我们遇到类似于定义域为{篮球,足球,飞机,火车},这样的属性时,显然已经无法计算了,我们无法利用属性值直接计算距离,这种属性称为无序属性,与之相对的就是有序属性,也就是我们常见的{1,2,3,4,5.6,7.88}等等。显然在任务重不可能值存在有序属性,因此我们引入VDM算法,计算无序属性。
当样本空间中属性的重要性不同时,我们可以使用加权距离,例如加权闵可夫斯基距离:
特别注意的一点:我们常用某种形式的距离进行相似度的度量,距离越大,相似度越小,但是在有些时候我们需要知道用于度量相似度的距离并不一定满足度量的基本性质,我们将这种距离称之为非度量距离(后面会说到)