聚类篇——(一)聚类分析概述

聚类分析是研究“物以类聚”问题的分析方法。“物以类聚”问题在社会经济研究中十分常见。例如,收集到大型商厦的顾客自然特征、消费行为等方面的数据,顾客群细分是最常见的分析需求。可从顾客自然特征和消费行为的分组入手,如根据客户的年龄、职业、收入、消费金额、消费频率、购物偏好等进行单变量分组,或者进行多变量交叉分组。这种分组方式是客户群细分中普遍采用的方式,但其客户群划分带有明显的主观色彩,表现在如下方面:第一,需要明确指定分组变量。这无疑需要分析人员具备丰富的行业经验,否则形成的顾客分组可能是不恰当的。同时,这种分组通常只能侧重反映顾客的某个特征或少数几个特征,很难反映多方面的综合特征,但基于多方面综合特征的客户细分往往比单个特征的细分更有意义。第二,需要明确指定分组标准。合理的标准是成功分组的关键,但仍需要行业经验和反复尝试。
通常,人们更希望的分组是从数据出发的全面和客观分组,即分组时兼顾考虑多方面因素,且无需人工指定分组标准,并确保各方面特征相似的顾客能被分在同一组中,特征不相似的顾客被分在不同组中。这是一种全方位的自动化分组,它相对更全面和更客观,对帮助企业认识自己的客户更有帮助。聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。在没有先验知识的前提下,根据数据的诸多特征,按照其在性质上的亲疏程度进行自动分组,且使组内个体的结构特征具有较大的相似性,组间个体的特征相似性较小。这里所谓的“没有先验知识”是指没有事先指定分组标准,所谓“亲疏程度”是指样本在变量取值上的总体相似程度或差异程度。聚类分析所使用方法的不同,常常会得到不同的结论。不同研究者对于同一组数据进行聚类分析,所得到的聚类数未必一致。聚类的目标是同一类对象的相似度尽可能大,不同类对象之间的相似度尽可能的小。

1. 聚类分析应用

在研究与处理事物时,经常需要将事物进行分类,聚类分析适用于很多不同类型的数据集合和研究领域,如工程、生物、医药、语言、人类学、经济社会、心理学、电子商务和市场学等。

领域 聚类分析的应用
工程 根据物探、化探的指标将样本进行分类
生物 古生物研究中根据挖掘出的骨骼形状和尺寸将它们分类;对动植物、基因进行分类,获取对种群固有结构的认识
经济社会 选取适当指标,对企业经济效益分类;对各地区的经济、政治、教育情况进行分类以及产业发展情况分类
商业 发现不同的客户群,通过购买模式刻画客户群的特征,研究消费者行为;进行市场细分,寻找新的潜在市场、及实验的市场
因特网 用来在网上进行文档归类,以及网站的访问类型、时段等分类
保险 对汽车保险单持有者分类
房产 根据住宅类型、价值、位置对城市房产分类
电子商务 通过聚类得出具有相似浏览行为的客户,并分析客户的共同特征,有助于更加了解自己的客户,向客户提供更合适的服务
2. 常用的聚类分析算法

目前聚类算法有很多,可从不同角度对它们进行分类。
聚类篇——(一)聚类分析概述_第1张图片

  • 基于划分的聚类算法
    基于划分算法原理简单来说就是对一堆散点进行聚类,首先确定将这些散点聚成几类,然后挑选几个点作为初始中心点,根据一定规则迭代重置聚类中心点,直到达到“类内的点都足够近,类间的点都足够远”的目标效果。
    优点:对于大型数据集也是简单高效、时间复杂度、空间复杂度低。
    缺点:数据集大时结果容易局部最优;需要预先设定K值,且对初始中心点的选取很敏感;对噪声和离群值非常敏感;只用于numerical类型数据;不能解决非凸(non-convex)数据。
  • 基于层次的聚类算法
    层次聚类主要有两种类型:合并的层次聚类和分裂的层次聚类。合并的层次聚类是一种自底向上的聚类算法,从最底层(即每个数据点为一类)开始,每一次合并最相似的类,直到全部数据点都合并到一类时或者达到某个终止条件时停止,大部分层次聚类都是采用这种方法处理。分裂的层次聚类是一种自顶向下的聚类方法,从最顶层(即全部数据点为一类)开始,然后把根节点分裂为一些子类,每个子类再递归地继续往下分裂,直到每个类中仅包含一个数据点。
    优点:可解释性好;层次聚类算法能产生高质量的聚类;能很好对K-means不能解决的非球形族进行聚类。
    缺点:时间复杂度高O(m3),改进后的算法也有o(m2lgm),m为数据点的个数;具有贪心算法的缺点,一步错步步错。
  • 基于密度的聚类算法
    基于密度算法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇。
    优点:对噪声不敏感;能发现任意形状的聚类。
    缺点:聚类的结果与参数有很大的关系;DBSCAN用固定参数识别聚类,但当聚类的稀疏程度不同时,相同的判定标准可能会破坏聚类的自然结构,即较稀的聚类会被划分为多个类或密度较大且离得较近的类会被合并成一个聚类。
  • 基于网格的聚类算法
    基于网格算法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值。
    优点:速度很快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。
    缺点:参数敏感;无法处理不规则分布的数据,只能发现边界是水平或垂直的簇,而不能检测到斜边界;维数灾难,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。这种算法效率的提高是以聚类结果的精确性为代价的。经常与基于密度的算法结合使用。
  • 基于模型的聚类算法
    基于模型的聚类算法试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。其中,以基于概率模型的方法居多,同一“类”的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的,最典型、也最常用的方法就是高斯混合模型(GMM,Gaussian Mixture Models)。
    优点:对“类”的划分不那么“坚硬”,而是以概率形式表现,每一类的特征也可以用参数来表达。
    缺点:执行效率不高,特别是服从的概率分布很多但每个数据量很少的时候。
3. 聚类分析时常见的基本问题
  • 数据标准化
    在进行聚类分析之前,为了消除聚类变量值数量级上的差异,通常需要先对数据进行标准化,常用的标准化方法有:
    聚类篇——(一)聚类分析概述_第2张图片
  • 样本亲疏程度的测量
    样本若有k个变量,则可以将样本看成是一个k维空间的一个点,样本和样本之间的距离就是k维空间点和点之间的距离,这反映了样本之间的亲疏程度。聚类时,距离相近的样本属于一个类,距离远的样本属于不同类。常用的亲疏度度量方法有:

(1)欧氏距离(Euclidean Distance)
两个样本之间的欧氏距离是样本各个变量值之差的平方和的平方根,计算公式为
在这里插入图片描述
其中样本 x = ( x 1 , x 2 , . . . , x n ) , y = ( y 1 , y 2 , . . . , y n ) x=(x_1,x_2,...,x_n),y=(y_1,y_2,...,y_n) x=(x1,x2,...,xn)y=(y1,y2,...,yn) 。使用前一般需要将数据标准化,距离越大,差异度越大。

(2)欧氏距离平方(Squared Euclidean Distance)
两个样本之间的欧氏距离平方是各样本每个变量值之差的平方和,计算公式为在这里插入图片描述
(3)切比雪夫距离(Chebychev Distance )
两个样本之间的切比雪夫距离是各样本所有变量值之差绝对值中的最大值,计算公式为 在这里插入图片描述
(4)绝对值距离( Block Distance )
两个样本之间的绝对值距离是各样本所有变量值之差绝对值的总和,计算公式为
在这里插入图片描述
(5)明科夫斯基距离(Minkowski Distance )
两个样本之间的Minkowski距离是各样本所有变量值之差绝对值的p次方的总和,再求p次方根。计算公式为在这里插入图片描述
(6)余弦相似度
余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个样本间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。
聚类篇——(一)聚类分析概述_第3张图片
通过上述介绍,相信对聚类分析已经有了初步了解,即什么是聚类分析、在什么场景会用到聚类分析、有哪些常用的聚类分析算法,以及样本相似度计算。接下来可能比较关心聚类算法是如何将一堆看似没有规律的数据点聚成几个簇的,后面会陆续介绍几种常用的聚类方法:K-means聚类、K-Medoids聚类、层次聚类、有序样本聚类…

你可能感兴趣的:(数据分析,机器学习)