大数据分析笔记 (3) - 聚类(clustering)

监督学习和无监督学习

标记数据(labelled data)与未标记数据(unlabelled data)

无监督学习(unsupervised techniques):和寻找未标记数据中的隐藏结构的问题相关。
例子:聚类(clustering), 密度估计(density estimation), 降维(dimensionality reduction)

K-mean 聚类算法

给定m个对象的集合,每个对象拥有n个可衡量的属性。每个对象都是n维空间中的一个点。
对于选定的k值 (即聚类的数量),根据对象与第k组质心的临近度(proximity)来确定k个对象簇。
簇质心为每个簇中对象的n维向量的算术平均值。

用例

通常作为分类(classification)的引导。
一旦识别出簇类,则可以将标签应用于每个簇类以进行分类。

应用

  • 图像处理
  • 医疗 (聚类患者)
  • 客户分组 (查找相似的客户)

步骤

  1. 选择k的值,并且选择k的质心初始猜测值 (initial guess for the centroids)。
  2. 计算从每个数据点(xi, yi)到每个质心的距离。将每个点分配给离其最近的质心。
  3. 计算并更新步骤2中新形成定义的每个簇类的质量中心。
  4. 重复步骤2和步骤3的操作,直到算法收敛(convergence)。
    在这里插入图片描述
    计算两点的欧几里得距离(Euclidean distance):
    在这里插入图片描述
    计算多个点的质心:
    在这里插入图片描述

确定k的值(簇类的个数)

使用内平方和(Within Sum of Sqaure, WSS)的启发式(heuristic)算法。WSS是所有数据点与其最近质心之间距离的平方和。如果这些点相对靠近它们各自的质心,那么WSS将相对较小。因此,如果k+1聚类没有显著降低k聚类中的WSS值,那么增加一个簇意义可能不大。
在这里插入图片描述

诊断

在结果生成之后,应该考虑以下问题

  • 聚类之间是否较好地相互分离?
  • 是否存在只有几个点的簇?
  • 是否有靠得很近得质心?

如果多的簇数量并没有形成簇之间更好的区分,那么更少的簇应该是更好的选择。

必须做出以下决定

  • 聚类分析应包括哪些对象属性(object attributions)?
  • 每个属性应该采用什么计量单位(unit of measure)?(例如,选择英里还是公里)
  • 是否需要缩放(rescaled)属性?
  • 一种属性可能会产生不成比例的影响。

对象属性:
在选择对象属性的时候,需要知道新对象的哪些属性在其被分配簇时是已知的。(比如当前的客户拥有满意度或购买频率属性,但是潜在客户可能没有这些信息)
尽量减少属性的数量:

  • 避免使用太多的变量。太多的属性可能会将最重要变量的影响最小化。
  • 避免使用多个类似的变量。可能会突出一类属性的重要性。
  • 识别任何高度相关的属性,然后在聚类分析中使用相关属性中的一种或者两种。(可以使用散点图矩阵)
  • 特征选择:信息增益,PCA。

度量单位(unit of measure)可能会影响聚类结果。
在这里插入图片描述
重新缩放属性(rescaling attributes)会影响聚类结果。(将每个属性除以其标准差 standard deviation)
在这里插入图片描述

注意事项

K-mean聚类算法对初始质心(initial centroids)的开始位置是敏感的。因此,针对一个特定的k值运行多次k-mean分析是非常重要的,以确保聚类结果具有整体上最小的WSS。
除了欧几里得距离,还可以用曼哈顿距离(Mantattan distance)来分析聚类,此时,使用中位数(median)作为质心会比使用均值作为质心更好。

K-mean聚类算法适用于可以通过具有测量意义的数值属性来描述的对象。(区间和比率属性也是适用的)
但是,k-mean并不能很好地处理分类变量(categorical variable)。
此时,k-mode算法便可以作为针对分类变量地聚类方法使用了。比如,(a, b, c, d) 到 (d, d, d, d)之间距离是3,k-mode能感知得到。
有时候将分类变量转化为数值变量会更好。比如,{hot, warm, cold} -> {1, 0, -1}

k-mean 在以下情况表现不佳

  • 当数据集包含噪声(noise)或者离群值(outliers)。
  • 当簇具有非球形形状(non-globular shapes)时。
  • 当每个簇的密度(densities)不同时。
  • 当簇的大小明显不同时。
  • 有时候会找到“空”簇 (empty cluster)。

基于密度的聚类 (Density based Clustering)

基于密度的聚类 定位 高密度区域(regions of high density)。这些区域彼此之间由低密度区域(regions of low density)分隔开。
换句话说,簇是数据中间中的密集区域,由较低对象密度的区域分割。
主要功能

  1. 能发现任意形状(arbitrary shape)的簇。
  2. 能够处理噪声(handle noise)。
  3. 需要密度参数(density parameters)作为终止条件。

DBSCAN

通过对数据集特定点的密度进行计数,方法是对该点的指定半径Eps内的点进行计数,这包括了当前点本身。
在这里插入图片描述
如图所示,在点A的Eps半径范围内,包括点A本身,点的数量是7。因此,A的密度就是7了。

给定密度阈值 density threshold(MinPts)和半径 radius(Eps), 数据集中的点分为三种类型:核心点(core point),边界点(boarder point)和噪声点(noise point)。
在这里插入图片描述

  • 核心点:密度大于密度阈值MinPts的点。核心点位于基于密度的聚类的内部。
  • 边界点:边界点不是核心点,但是落在核心点附近。(图中B点,B点不是核心点,但其落在A点的相邻位置)
  • 噪声点:既不是核心点,也不是边界点的点。(图中C点,自己不是核心点,同时也不是任何核心点的邻点)

步骤

  1. 将每个点标记为核心点,边界点或噪声点。
  2. 将每组Eps连接的核心点标记为一个单独的簇。
  3. 将每个边界点分配给其关联核心点的簇之一。
    在这里插入图片描述

特点

  • 抗噪声和离群值(Resistent to noise and outliers)
  • 可以处理不同形状和大小的集群
  • 计算复杂度类似于K-mean

什么情况下表现不佳?

  • 变化的密度。(可以通过采样 sampling 克服)
  • 稀疏和高维的数据。(可以通过使用拓扑保留降维技术 - topology preserving dimension reduction technology 来克服)

层次聚类 (Hierarchical Clustering)

分层聚集聚类 (Hierarchical agglomerative clustering)
分层分裂聚类 (Hierarchical divisive clustering)

步骤

  1. 每个对象最初都被视为一个簇。
  2. 然后在每个步骤中将群集与最相似的簇合并。
  3. 重复此过程,直到存在一个包含了所有对象的簇。
    在这里插入图片描述
    该算法计算非常昂贵,O(n2)到O(n3),因此在大数据分析中很少使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值