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

在数据化运营实践中,由于针对大规模数据集所采用的聚类算法主要是K-Means算法应用,因为其简洁、高效、易理解、易实施。因此,除非特别说明,本章所展开讲解的聚类技术的具体内容都是针对K-Means算法进行分析和阐述的。

9.3.1 如何处理数据噪声和异常值

K-Means算法对噪声和异常值非常敏感,这些个别数据对于平均值的影响非常大,相对而言,K-中心点的方法不像K-Means算法,它不是求样本的平均值,而是用类中最接近于中心点的对象来代表类,因此K-中心点的方法对于噪声和异常值没有K-Means算法那么敏感。鉴于K-Means算法的这一局限性,我们应用该算法时需要特别注意这些数据噪声和异常值。

针对聚类中的数据噪声和异常值,常用的处理方法如下:

❑直接删除那些比其他任何数据点都要远离聚类中心点的异常值。为了防止误删的情况发生,数据分析师需要在多次的聚类循环中监控这些异常值,然后依据业务逻辑与多次的循环结果进行对比,再决定是否删除这些异常值。

❑随机抽样的方法也可以较好地规避数据噪声的影响。因为是随机抽样,作为稀有事件的数据噪声和异常值能被随机抽进样本中的概率会很小,这样随机抽出的样本就比较干净。针对该随机样本进行聚类分析时不仅可以避免数据噪声的误导和干扰,而且其聚类后的结果作为聚类模型可以应用到剩余的数据集中,完成对整个数据集的聚类划分。利用这种随机抽样方式得到的聚类模型,在应用于整个数据集时至少有以下两种方式。

1)直接用该聚类模型对剩余的数据集进行判断,也就是把剩余的数据分配给那些离它们最近的聚类中心,这种方法最简单、最直观、最快捷。

2)利用监督学习中的分类器的原理,每个聚类被认为是一个类别,已经参与聚类的这些随机抽样数据则被看做是学习样本,由此产生的分类器可以用于判断剩余的那些数据点最适合放进哪个类别或者哪个聚类群体中。这种方式相比第一种方式来说比较费时,尤其是当聚类出来的群体较多的时候,利用分类器的原理去分别判断时会更加耗时,不过其作为一种思路和方法倒是未尝不可。

9.3.2 数据标准化

在数据化运营的商业实战中,参与聚类的变量绝大多数都是区间型变量(Interval),不同区间型变量之间的数量单位不同,如果不加处理直接进行聚类,很容易造成聚类结果的失真。比如,长度单位有的是公里,有的是毫米;质量单位有的是吨,有的是克;一般而言,变量的单位越小,变量可能的值域就越大,对聚类结果的影响也就越大。为了避免对度量单位选择的依赖,在聚类之前所要采取的一个重要的技术措施就是进行数据标准化。

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

数据的标准化有多种不同的方式,其中,尤以标准差标准化最常用。标准差标准化,又叫Z-Score标准化(Zero-Mean Normalization),经过这种方法处理后的数据符合标准正态分布,即均值为0,标准差为1,其转化公式如下:

00092.jpeg

其中,μ为所有样本数据的均值,σ为所有样本数据的标准差。

9.3.3 聚类变量的少而精

在聚类分析中,参与聚类的指标变量不能太多,如果太多,一方面会显著增加运算的时间,更重要的是变量之间或多或少的相关性会严重损害聚类的效果,并且太多的变量参与其中会使随后的聚类群体的业务解释变得很复杂。鉴于此,聚类之前,如何精心挑选特定的少数变量参与聚类是聚类分析技术应用中的又一个关键点。

具体到数据化运营的聚类实践中,要如何落实聚类变量少而精的原则呢?以下一些经验可以作为参考。

❑紧紧围绕具体分析目的和业务需求挑选聚类变量。在分析展开之前,密切保持与业务需求方的沟通,借鉴业务方的业务经验和业务直觉,直接排除大量无关的指标变量,锁定与项目需求关系最密切的核心变量。任何数据挖掘项目都是有明确挖掘任务定义的,聚类分析也是如此,在聚类之前应该有明确的聚类应用目的,然后根据这个目的挑选一些相应的字段。举个简单的例子,如果在10 000个用户样本中,想从产品使用习惯不同的角度来细分群体,以此调整我们的客户服务,可以优先考虑把产品使用频率、产品档次、主要损耗件的类别等作为其中的聚类字段;而如果要从不同的购买习惯的角度来划分群体,以供营销策划参考,则会把付费的方式、产品档次、是否响应促销等作为优先考虑的聚类字段。这个案例主要是想说明,对于任何具体的聚类项目,都应该事先在脑海里有一些相应的基本核心字段可以与该项目相匹配,而不能不管是什么项目、什么任务、什么目的,一股脑把所有变量统统放进去,这种胡子眉毛一把抓的做派是没有任何意义的。

❑通过相关性检测,可防止相关性高的变量同时进入聚类计算。比如,在互联网行业的分析中,登录次数、在线时长、PV浏览量等这些变量相互之间都是明显相关的,只取其中一个变量就足够了。

❑数据分析也好,数据挖掘也罢,其本身是充满想象艺术的,所谓一半是科学,一半是艺术,相信你在聚类实践中也会体会这个特点。数据分析在很多时候是需要一些衍生变量来画龙点睛的。我们常常容易从现有的数据库中提取现成的字段,而经常忘记一些衍生的新字段,如比率。很多时候,我们的分析中有太多直接提取的绝对值字段,而常会忘记增添一些有价值的相对值(比率)字段,什么时候要考虑哪些有价值的比率字段,这需要业务知识和挖掘经验来支持的。

❑主成分分析,作为一种常用的降维方法,可以在聚类之前进行数据的清理,帮助有效精简变量的数量,确保参与聚类运算变量的少而精。然而,任何事物都是具有两面性的,主成分分析在帮助聚类算法精简输入变量数目的同时,也会造成聚类结论的可解释性、可理解性上相对于原始变量而言更复杂,在直观上不容易理解。