1、聚类任务
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇。通过这样的划分,每个簇可能对应于一些潜在的概念(类别)。需要说明的是,这些概念对聚类算法来说事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需要使用者来把握和命名。
![](http://upload-images.jianshu.io/upload_images/4155986-3dbf672a884f4689.png)
聚类既能作为一个单独的过程,用于寻找数据内在的分布结构,也可以用作其他学习任务的前驱过程。例如,在一些商业应用中需要对新用户的类型进行判别,但定义用户类型对商家来说却可能不太容易,此时往往可能先对用户进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用于判别新用户的类型。
聚类算法涉及两个主要的问题:性能度量和距离计算
2、性能度量
我们希望聚类结果能使得同一簇的样本尽可能彼此相似,而不同簇的样本尽可能不同。聚类性能度量大致有两类,一个是将聚类结果与某个“参考模型”进行比较,称为外部指标,另一个是直接考察聚类结果而不利用任何参考模型,称为内部指标。
外部指标
![](http://upload-images.jianshu.io/upload_images/4155986-bf1ca555e59fe6e9.png)
![](http://upload-images.jianshu.io/upload_images/4155986-1a881af8323b9a92.png)
内部指标