数据发掘之聚类分析总结
作者头像
  • 2020-04-23 08:56:58 1

聚类分析

一、概念

聚类分析是一种数据分析技术,它根据个体的特征将数据分组,使同一类别内的个体高度相似,而不同类别之间的个体差异显著。聚类分析属于无监督学习,主要分为Q型聚类和R型聚类。

  • Q型聚类:针对样本或记录的聚类,通过间隔(如欧氏距离、马氏距离等)来衡量相似性。
  • R型聚类:针对变量或目的的聚类,通过相似系数(如皮尔逊相关系数、夹角余弦等)来衡量相似性。

二、常用的聚类算法

1. K-Means划分法

K-Means是一种基于均值的聚类算法,目的是将数据分成K个类别,使得每个点归属于与其最近的质心对应的类别。具体步骤如下:

  • 初始化:从数据中随机选取K个点作为初始质心。
  • 分配:根据欧式距离将每个点分配到最近的质心对应的类别。
  • 更新:重新计算每个类别的质心。
  • 迭代:重复分配和更新步骤,直至质心不再变化。

通过Python的sklearn库可以方便地实现K-Means聚类。例如,在一个包含多个变量的数据集中,通过观察变量间的散点图和相关系数,发现某些变量间存在强相关性。接着,选择合适的变量并进行降维处理,最后应用K-Means算法进行聚类,并通过散点图和直方图展示聚类结果。

2. 层次聚类法

层次聚类算法通过递归地合并或分割数据集,形成一个层次结构。这种方法直观地展示了数据间的相似性,适用于一维数据的自动分组。具体步骤包括:

  • 初始化:每个数据点视为独立的一类。
  • 合并:按间隔从小到大合并数据点,逐步形成树状结构。
  • 截断:根据需要截断树状结构,得到最终的聚类结果。

同样地,可以利用sklearn库实现层次聚类,并通过Dendrogram图展示聚类结果。

3. DBSCAN密度法

DBSCAN(基于密度的带噪声的空间聚类算法)是一种能够发现任意形状聚类的算法。其核心思想是将高密度区域定义为簇,并能识别出噪声点。具体步骤如下:

  • 检查邻域:检查每个点的Eps邻域内是否有足够的点(超过MinPts)。
  • 扩展簇:若满足条件,则以该点为核心,扩展到邻域内的其他点。
  • 合并簇:不断迭代,直到没有新点被加入到簇中。

DBSCAN的优点在于聚类速度快、能有效处理噪声点,并且不需要预设聚类数量。然而,对于高维数据,可能会遇到“维度灾难”的问题。

通过Python的sklearn库,也可以实现DBSCAN算法。例如,首先计算点之间的距离矩阵,然后根据设定的Eps和MinPts参数,对数据点进行分类,最终得到聚类结果。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
发掘总结分析数据
    下一篇