《数据挖掘与数据化运营实战》(第9章)

《数据挖掘与数据化运营实战》(第9章)

9 聚类分析的典型应用和技术小窍门

9.1 聚类分析的典型应用场景

  • 目标用户群体分类
  • 不同产品的价值组合
  • 探测、发现孤立点、异常值。孤立点就是指相对于整体数据对象而言的少数数据对象,这些对象的行为特征与整体的数据行为特征很不一致,虽然在一般的数据处理过程中,会把孤立点作为噪声数据清理出去,但是在很多业务数据领域,孤立点的价值也很重要

9.2 主要聚类算法的分类

9.2.1 划分方法

给定具有n个对象的数据集,采用划分方法对数据集进行k个划分,每个划分代表一个簇,k<=n,并且每个划分至少包含一个对象,划分方法一般要做一个初始划分,然后采用迭代重新定位技术,通过让对象在不同组间的移动来改进划分的准确度和精度,一个好的划分原则是,同一个簇中对象之间的相似性很高,不同簇之间对象的相异性很高。

目前主流的划分方法如下:

  • K-Means算法,又叫K均值算法,在给定一个数据集合需要划分的数目k后,该算法可以根据数据划分到k个簇中,直到收敛为止,K-Means算法用的是簇中对象的平均值来划分,大致步骤就是,首先从随机抽取的k个数据点作为初始的聚类中心(种子中心),然后计算每个数据点到每个种子中心的距离,并把每个数据点分配到距离它最近的种子中心,一旦所有的数据点都被分配完成,每个聚类的聚类中心(种子中心)按照本聚类的现有数据点进行重新计算,不断重复,直到收敛,既满足某个终止条件,最常见的终止条件就是误差平方和(SSE)局部最小。
  • K-Medoids算法,又叫K中心点算法,该算法用最接近簇中心的一个对象表示划分的每个簇,划分过程相似,与K-Means算法最大的不同在于,K-Medoids算法是用簇中最接近中心点的一个真实数据对象来代表簇,而K-Means算法是用计算出来的簇中对象的平均值来代表该簇的。

9.2.2 层次方法

在给定n个对象的数据集后,可用层次方法对数据集进行层次分解,直到满足某种收敛条件为止。

层次方法有可分为:

  • 凝聚层次聚类:又叫自底向上方法,一开始把每个对象作为单独的一类,然后相继合并与之相似的对象或者类,直到所有小的类别合并成一个类,达到收敛。
  • 分裂层次聚类:又叫自顶向下方法,一开始将所有的对象置于一个簇中,在迭代的每一步中,类会被分裂成更小的一类,直到最终每个对象在单独的一个类中,收敛达到终止条件。

层次方法最大的缺陷是,合并或分裂点的选择比较困难,对于局部来说,好的合并或分裂点的选择往往并不能保证会得到高质量的全局的聚类结果,而且一旦一个步骤完成,它就不能撤销。

9.2.3 基于密度的方法

传统的聚类方法都是基于对象之间的距离,但是这些基于距离的方法只能发现球状类型的数据,对于非球状类型的数据,只根据距离是不够的。

基于密度的方法原理是:只要邻近区域里的密度超过了某个阈值,就继续聚类,换言之,给定某个簇中的每个数据点,在一定范围内必须包含一定数量的其他对象。该算法从数据对象的分布密度触发,把密度足够大的区域连接在一起,因此可以发现任意形状的累,同时该算法还能够过滤噪声数据,典型算法是DBSCAN以及扩展算法OPTICS,但是最大的缺点是,该算法需要用户确定输入参数,而且对参数十分敏感。

9.2.4 基于网格的方法

将对象空间量化为有限数目的单元,而这些单元则形成了网格结构,所有的聚类操作都是在这个网格结构中进行的,该算法的优点是处理速度快,其处理时间常常独立于数据对象的数目,只跟量化空间每一维的单元数目有关。

典型算法是STING,该算法是一种基于网格的多分辨率局累计数,将空间区域划分为不同分辨率级别的矩形单元,并形成一个层次结构,且高层的低分辨率单元会被划分为多个低一层次的较高分辨率单元,这种算法从最底层的网格开始逐渐向上计算网格内数据的统计信息并储存,网格建立完成后,则用类似于DBSCAN的方法对网格进行聚类。

9.3 聚类分析在实践应用中的重点注意事项

9.3.1 处理数据噪声和异常值

数据化运营中聚类算法主要是K-Means算法,但其对噪声和异常值非常敏感(K-Means算法用的是平均值来聚类)

常见的处理方法:

  • 直接删除那些比其他任何数据点都要远离聚类中心点的异常值,为了防止误删除,需要在多次的聚类循环中监控异常值,根据业务逻辑与多次的循环结果进行比较,然后决定删除。
  • 随机抽样的方法也能够较好的规避数据噪声的影响,因为随机抽样,所以,被抽中的几率很小,不仅可以避免数据噪声的误导和干扰,而且聚类后的结果作为聚类模型可以应用到剩余的数据集中————直接用该聚类模型对剩余的数据集进行判断、利用监督学习的分类器原理,每个聚类作为一个类别,用于判断剩余的那些数据点最适合放进哪个类别或者聚类群体中。

9.3.2 数据标准化

数据标准化是聚类分析中最重要的一个数据预处理步骤,它即可以为聚类计算中的各个属性赋予相同的权重,还可以有效化解不同属性因度量单位不统一所带来的潜在的数量等级的差异。

数据标准化有很多不同方式,标准差标准化最常用(Z-Score标准化),处理后数据符合标准正态分布,即均值为0,标准差为1,转化公式如下:
《数据挖掘与数据化运营实战》(第9章)

9.3.3 聚类变量少而精

  • 紧紧围绕具体分析目的和业务需求挑选聚类变量
  • 通过相关性检测,防止相关性高的变量同时进入聚类计算(如:登录次数、在线时长、PV浏览量等变量之间都是明显相关的,选取一个即可)
  • 衍生变量
  • 主成分分析

9.4 聚类分析的扩展应用

9.4.1 聚类的核心指标与非聚类的业务指标相辅相成

一方面坚持参与聚类的变量少而精的原则,另一方面把非聚类的业务指标与聚类结果一起拿来分析、提炼、挖掘,这种相辅相成的做法在聚类分析的应用实践中已经得到了普遍的认可和采用。

具体来说,先通过用户行为属性里的核心字段进行聚类分群,在得到比较满意的聚类分析结果后,针对每个具体细分的对象群体,再分别考察用户的会员属性。

9.4.2 数据的探索和清理工具

  • 聚类技术的聚类类别可以作为一个新的字段加入到其他的模型搭建中,可能会提高建模的效率和增强效果。
  • 在合适的场景中,可以作为细分群体的建模依据,细分建模的精度比整体建模的精度要高一些。
  • 聚类技术的应用本身就是数据探索和熟悉的过程。
  • 聚类技术对变量的聚类是精简变量的有效方法。
  • 聚类技术可以用来检查数据的共线性问题。

9.4.3 个性推荐的应用

9.5 聚类分析的优势和缺点

优点

  • 聚类技术已经比较成熟,算法比较可靠,是一个不错的数据群体细分的工具和方法
  • 不仅是一种模型技术,而且也可以作为数据摸底和数据清洗的工具
  • 如果聚类技术使用的好,聚类的结果比较容易用商业和业务的逻辑来解释
  • 算法简洁、高效,时间复杂度O(tkn),t是循环的次数,k是聚类的个数,n是数据点的个数,由于n远远大于k和t,因此K-Means的算法时间复杂度与数据记得大小是线性相关
  • K-Means算法是一个不依赖顺序的算法

缺点

  • 需要实现指定K,在实践中,需要测试多个不同的k才能最终确定最合适的K
  • 对数据噪声和异常值比较敏感

9.6 聚类分析结果的评价体系和评价指标

A:业务专家的评估

B:聚类技术上的评价指标

  • RMSSTD:群体中所有变量的综合标准差,RMSSTD越小,群体内(簇内)个体的相似程度越高,聚类效果越好
  • R-Square:聚类后群体间差异的大小,R-Square越大,群体间相异性越高,聚类效果越好
  • SPR:适合于层次方法中的凝聚层次聚类算法,表示当原来两个群体合并成新群体后,所损失的群内相似性的比例,SPR越小,表明合并成新的群体时,损失的群内相似性比例越小,新群体内的相似性越高,聚类效果越好
  • Dinstance Between Clusters:适合凝聚层次聚类方法。表示再要合并两个细分群体的时候,分别计算两个群体的中心,以求得两个群体的距离,一般来说,距离越小说明两个群体越适合合并成一个新群体