1.概述
好的聚类算法,一般要求类簇具有:高的类内 (intra-cluster) 相似度
低的类间 (inter-cluster) 相似度
评价一个聚类算法的指标不像有监督的分类算法计算其精确率,召回率等指标那样简单。聚类评估中不应该将标注结果作为聚类结果的评价指标,除非我们有相关的先验知识或某种假设,知道评估的这种标准或相似性度量下其簇内差距更小。
对于聚类算法大致可分为 外部评价标准和内部评价标准。外部评价标准针对的是给定一个基准,譬如另外一种聚类结果,当然人工标注也可理解为一种算法,根据这些基准数据对聚类结果进行评价。
以sklearn给出的这图为例,我们看上去哪种算法好,哪种不好,实际是我们给了他一种事实标准,由此为基准去评价的。
在数据分析中,包括有监督和无监督的机器学习算法,重要的是距离的衡量,就是我们怎么认为谁跟谁是最相似的度量标准。这距离常用的有欧式距离,曼哈顿距离,余弦距离等, 距离标准不一,自然聚类的结果不一。举个不恰当的例子,三个人站这里,可以按年龄,性别,项目,籍贯等作为距离标准,每种的结果是不一样的。
针对人脸聚类的问题,一个人的多张人脸其相似度差异是会很大的,尤其是图像质量的差异。下图是我用github上开源的一份gan代码 修改后跑出来的GAN人脸(git@github.com:a312863063/seeprettyface-generator-yellow.git),
用另一个完全无关的人脸识别模型去对这些图片进行align并进行特征提取,align后如下
依次提特征后计算0024这张图片与其他图片的相似度,可以看出其与前几张是完全不相似甚至为负余弦相似度的,跟随后的那些也是相似度逐渐降低的。然后进一步的计算n与n+1张的相似度,则都在0.8以上,要知道这里是原始的相似度,通常来说声称的相似度是要经过一道拉伸函数转换的,这里的0.8都相当于98%左右了.
再放一个类似的供观摩:
如果把这些假脸当做现实社会中采集的万千人脸挑出的些图片的话,按这个排序,两两相似度都差不多95%以上,理应是一个人,然而随便相距较远的两个图又明显不是一个人,这种情况该怎么划分类簇?
实际情况远比这个复杂,不同的划分标准及评价准则都将影响聚类的算法及结果。
聚类的评价就是判断聚类算法给每个数据的类别标签与真实标签的一致性程度。虽说聚类是无监督学习,但常用的评价指标均需要用到类别标签。