目录
一、聚类的定义
二、模型的性能度量
三、常见的聚类算法
四、K-means
五、层次聚类法
六、基于密度的聚类方法
一、聚类的定义
聚类就是将大量未知标注的数据集按照数据本身的特点将数据集划分为多个类别,使得类内的样本尽可能地相似,类间地样本尽可能地不同。
之前我们学习过的分类和回归问题都是有监督问题,给的训练集都是有标记的样本;而聚类问题则是无监督问题,训练集的样本都是无标记的。
二、模型的性能度量
为了能够分辨不同聚类模型的性能好坏,我们需要确定一些指标来评价我们得到的模型。
聚类性能指标一般有如下指标:
1、准确率
其中
代表正确聚类的数据个数,N代表数据的总个数
2、纯度
其中N代表数据的总个数,
代表第k个聚类簇,
是数据集合,
代表第j个数据
3、归一化互信息
互信息是至两个变量的关联程度,计算公式如下:
标准互信息是将互信息归一化,通常是除以最大熵
4、兰德指数
其中TP、TN、FP、FN的含义如下表所示:
真实值 | 预测值 |
正例 | 反例 |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
5、精准率、召回率、F-messure
精准率:
召回率:
F-messure:
三、常见的聚类算法
四、K-means
K均值算法是一种非常常见的聚类算法。
其基本思想是首先随机选取k个对象,将这些对象视为k个簇的中心,分别计算其他样本到这k个中心的距离,将样本分给距离大小最短的簇类中,然后再重新计算k个类的中心点,得到新的中心点后再次循环上述步骤直到结束。
算法的原理非常简单,实现起来非常容易,需要给定的参数只有k的值。
但是k值得选取不太好把握,而且对于一些结构化有空间信息的样本效果不太好,初始选取的k个值会影响聚类的效果。
五、层次聚类法
层次聚类的方法不会先将样本分为k个簇,而是将每个样本都是为不同的簇。
然后计算各个簇之间的距离,将最近的两个簇合并为一个新的簇。
然后重新计算各个簇之间的距离,直到最后合并只剩下一个簇。
其聚类效果如下图所示:
六、基于密度的聚类方法
该方法是以数据集在空间分布上的密度为依据进行聚类,不需要预先设定簇的数量,常见的方法有DBSCAN,OPTICS。
首先介绍一些基本概念:
- 邻域:以给定对象为圆心,半径为 的邻域为该对象的 邻域。
- 核心对象:若 邻域至少包含MinPts个对象,则称该对象为核心对象。
- 直接密度可达:如果存在一个对象链 ,对于 , 是 从关于 和MinPts直接密度可达的,则对象p是从对象q关于 和MinPts直接密度可达的。
- 密度可达:如果存在对象 ,使得对象p和q都是从 关于 和MinPts密度可达的,那么对象p到q是关于 和MinPts密度可达的。
DBSCAN算法的基本步骤如下:
基于密度的聚类方法不需要事先指定聚类的类别数目,而且对于结构化的空间信息数据有着非常好的聚类效果,面对噪音数据也能很好地处理。
但是缺点是很依赖与距离计算规则的选取,当数据的维度比较大时,容易受到不相关维度的影响。