聚类入门笔记
聚类概念
聚类就是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大,而类别间的数据相似度较小。
聚类中没有任何指导信息,完全按照数据的分布进行类别划分。聚类的大小和结构都没有事先假定。
聚类算法分类
几种典型聚类算法
K均值算法
流程
过程
- 设置初始类别数K,人为设置K个类别中心;
- 根据样本和类别中心的距离进行类别划分,样本划分到距离最近的类别;
- 重新计算当前类别划分下每类的中心(类别样本平均值);
- 在得到类别中心下继续进行类别划分;
- 如果连续两次的类别划分结果不变则停止算法;否则循环2~5 ;
优缺点
优点:
- 扩展性好
- 应用范围广
- 聚类时间快
缺点:
- 需要预先知道K
- 对初始参数敏感,容易陷入局部最优
- 异常值影响质心结果,无法剔除
- 对于非圆状的簇,算法表现不是很好
K最近邻算法(KNN)
流程
过程
有多种实现方式,以下以半监督方式实现为例
- 设定训练集的数据类别信息。
- 然后读取下一个要分类的样本,并计算从新样本到训练集的每个样本的欧几里得距离。
- 同欧几里得距离上最近的样本来确定新样本的类别信息。确定的方式就是最近的k个样本的投票。
- 重复以上步骤,直到所有测试样本都确定了类别。
优缺点
优点
- 简单,无需调整参数
- 无训练过程
缺点
- 计算成本高,必须计算训练集点和每个新样本之间的所有距离
层次聚类算法
过程
特点
- 类的个数不需事先定好
- 需确定距离矩阵 运算量大,适用于处理小样本数据
- 一旦一个步骤(合并或分裂)完成,就不能被撤销或修正,因此产生了改进的层次聚类方法
密度聚类算法
指导思想
只要样本点的密度大于某阈值,则将该样本添加到最近的簇中
特点
- 能克服基于距离的算法只能发现“类圆形”(凸)的聚类的缺点,可发现任意形状的聚类
- 对噪声数据不敏感。
- 计算密度单元的计算复杂度大。
DBSCAN(有代表性的基于密度的聚类算法)
将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”的数据中发现任意形状的聚类