数据分析师之必会算法—聚类方法

阅读之前看这里:博主是正在学习数据分析的一员,博客记录的是在学习过程中一些总结,也希望和大家一起进步,在记录之时,未免存在很多疏漏和不全,如有问题,还请私聊博主指正。
博客地址:天阑之蓝的博客,学习过程中不免有困难和迷茫,希望大家都能在这学习的过程中肯定自己,超越自己,最终创造自己。

数据分析师之必会算法—聚类方法

  • 1.什么是聚类
  • 2.聚类分析的典型应用场景
  • 3.主要的聚类算法
    • 3.1划分方法
    • 3.2层次方法
    • 3.3基于密度的方法
    • 3.4基于网格的方法
  • 四、聚类分析在实践应用中的重点注意事项
    • 4.1如同处理数据噪声和异常值
    • 4.2数据标准化
    • 4.3聚类变量的少而精
  • 五、聚类分析的扩展应用
    • 5.1聚类的核心指标与非聚类的业务指标相辅相成
    • 5.2数据的探索和清理工具
    • 5.3个性化推荐的应用
  • 六、聚类分析在实际应用中的优势和缺点
  • 七、聚类分析结果的评价体系和评价指标
    • 7.1 业务专家的评估
    • 7.2聚类技术上的评价指标

1.什么是聚类

聚类:聚类是根据给定的样本,依据它们特征的相似度或距离,将其归并到若干个“类”或“簇”的数据分析问题。
通俗的解释:物以类聚,人以群分。针对几个特定的业务指标,科研将观察对象的群体按照相似性和相异性进行不同的群组的划分。经过划分后,每个群组内部各对象间的相似度会很高,而在不同群组直接的对象彼此间将具有很高的相异度。

聚类分析的算法分为:

1.划分聚类
2.层次聚类
3.密度聚类
4.网格聚类
5.模型聚类

最常用的是划分聚类和层次聚类的方法。
层次聚类的方法是指让最相似的对象两两合并,这样不断地合并,最后就形成了一颗聚类树。

划分聚类的方法就是:给定 m m m个对象的数据集,以及希望生成的细分群体数量 K K K后,可采用这种方法将这些对象分成 K K K ( K ≤ m ) (K\leq m) (Km),使得每个组内对象是相似的, 而组间的对象是相异的。

  • 最常用的划分方法是 K − M e a n s K-Means KMeans方法, 其具体原理是:首先,随机选择 K K K个对象,并且所选择的每个对象都代表一个组的初始均值或初始的组中心值;对剩余的每个对象, 根据其与各个组初始均值的距离,将它们分配给最近的(最相似) 小组;然后, 重新计算每个小组新的均值;这个过程不断重复,直到所有的对象在 K K K组分布中都找到离自己最近的组。

聚类技术在数据分析和数据化运营中的主要用途表现在:既可以直接作为模型对观察对象进行群体划分, 为业务方的精细化运营提供具体的细分依据和相应的运营方案建议, 又可在数据处理阶段用作数据探索的工具, 包括发现离群点、 孤立点, 数据降维的手段和方法,通过聚类发现数据间的深层次的关系等。

2.聚类分析的典型应用场景

聚类分析的一个重要用途就是针对目标群体进行多指标的群体划分, 而类似这种目标群体的分类常常就是精细化运营、个性化运营的基础和核心,只有进行了正确的分类, 才可以有效进行个性化和精细化的运营、服务及产品支持等, 从这个角度来看, 聚类分析技术对于数据化运营而言是非常重要、非常基础的。

总地来说, 聚类分析技术在数据化运营实践中常见的业务应用场景如下。

  • 目标用户的群体分类 : 通过为特定运营目的和商业目的所挑选出的指标变量进行聚类分析, 把目标群体划分成几个具有明显特征区别的细分群体, 从而可以在运营活动中为这些细分群体采用精细化、 个性化的运营和服务, 最终提升运营的效率和商业的效果。
  • 不同产品的价值组合:企业可以按照不同的商业目的, 并依照特定的指标变量来为众多的产品种类进行聚类分析, 把企业的产品体系进一步细分成具有不同价值、 不同目 的多维度的产品组合, 并且可在此基础上分别制定相应的产品开发计划、 运营计划和 服务规划。
  • 探测、 发现孤立点、 异常值:孤立点就是指相对于整体数据对象而言的少数数据对象,这些对象的行为特征与整体的数据行为特征很不一致。虽然在一般的数据处理过程中会把孤立点作为噪声而剔除出去, 但是在许多业务领域里, 孤立点的价值非常重要。比如说, 互联网的风险管理里, 就非常强调对于风险的预防和预判, 而相关的风险控制分析中的孤立点很多时候又是风险的最大嫌疑和主要来源。及时发现这些特殊行为对于互联网的风险管理来说至关重要。 比如, 某B2C电商平台上, 比较昂贵的、 频繁的交易, 就有可能隐含着欺诈的风险成分, 需要风控部门提前关注、 监控, 防患于未然。

3.主要的聚类算法

3.1划分方法

给定具有 n n n 个对象的数据集, 采用划分方法 (Partitioning Methods) 对数据集进行 k k k个划分, 每个划分(每个组)代表一个簇, k ≤ n k\leq n kn, 并且每个划分(每个簇) 至少包含一个对象而且每个对象一般来说只能属于一个组。对于给定的K值, 划分方法一般要做一个初始划分, 然后采取迭代重新定位技术, 通过让对象在不同组间移动来改进划分的准确度和精度。 一个好的划分原则是:同一个簇中对象之间的相似性很高(或距离很近),而不同簇的对象之间相异度很高(或距离很远)。目前主流的划分方法如下。

  • K-Means算法

又叫K均值算法, 这是目前最著名、 使用最广泛的聚类算法。在给定一个数据集和需要划分的数目 k k k后,该算法可以根据某个距离函数反复把数据划分到 K K K个簇中, 直到收敛为止。

K-Means算法用簇中对象的平均值来表示划分的每个簇,其大致的步骤是,首先从随机抽取的K个数据点作为初始的聚类中心(种子中心),然后计算每个数据点到每个种子中心的距离,并把每个数据点分配到距离它最近的种子中心; 一旦所有的数据点都被分配完成,每个聚类的聚类中心(种子中心)按照本聚类(本簇)的现有数据点重新计算;这个过程不断重复, 直到收敛, 即满足某个终止条件为止,最常见的终止条件是误差平方和 (SSE) 局部最小。

  • K-Medoids算法

又叫K中心点算法, 该算法用最接近簇中心的 个对象来表示划分的每个簇。 K-Medoids算法与K-Means算法的划分过程相似, 两者最大的区别是 K-Medoids算法是用簇中最靠近中心点的一个真实的数据对象来代表该簇的, 而K-Means 算法是用计算出来的簇中对象的平均值来代表该簇的, 这个平均值是虚拟的, 并没有一个真实的数据对象具有这些平均值。

3.2层次方法

在给定n个对象的数据集后, 可用层次方法(Hierarchical Methods)对数据集进行层次分解, 直到满足某种收敛条件为止。 按照层次分解的形式不同, 层次方法又可以分为凝聚层 次聚类和分裂层次聚类:

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

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

3.3基于密度的方法

传统的聚类算法都是基于对象之间的距离, 即距离作为相似性的描述指标进行聚类划分, 但是这些基于距离的方法只能发现球状类型的数据, 而对于非球状类型的数据来说, 只根据距离来描述和判断是不够的。鉴于此, 人们提出了一个密度的概念, 基于密度的方法,其原理是: 只要邻近区域里的密度(对象的数量)超过了某个阀值, 就继续聚类。 换言之, 给定某个簇中的每个数据点(数据对象), 在一定范围内必须包含一定数量的其他对象。 该算法从数据对象的分布密度出发, 把密度足够大的区域连接在一起, 因此可以发现任意形状的类。 该算法还可以过滤噪声数据(异常值)。

基于密度的方法的典型算法包括 DBSCAN算法 以及其扩展算法 OPTICS。 其中,DBSCAN算法会根据一个密度阀值来控制簇的增长, 将具有足够高密度的区域划分为类, 并可在带有噪声的空间数据库里发现任意形状的聚类。 尽管此算法优势明显, 但是其最大的缺点就是算法需要用户确定输入参数, 而且对参数十分敏感。

3.4基于网格的方法

基于网格的方法 (Grid-Based Methods) 将把对象空间扯化为有限数目的单元, 而这些单元则形成了网格结构, 所有的聚类操作都是在这个网格结构中进行的。 该算法的优点是处理速度快, 其处理时间常常独立千数据对象的数目, 只跟量化空间中每一维的单元数目有关。 基千网格的方法的典型算法是STING (Statistical Information Grid) 算法。 该算法是一种基于网格的多分辨率聚类技术, 将空间区域划分为不同分辨率级别的矩形单元,并形成一个层次结构, 且高层的低分辨率单元会被划分为多个低一层次的较高分辨率单元。 这种算法从最底层的网格开始逐渐向上计算网格内数据的统计信息并储存。 网格建立完成后, 则用类似 DBSCAN 的方法对网格进行聚类。

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

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

4.1如同处理数据噪声和异常值

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

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

  • 直接删除那些比其他任何数据点都要远离聚类中心点的异常值
  • 随机抽样的方法也可以较好地规避数据噪声的影响

4.2数据标准化

为了避免对度量单位选择的依赖, 在聚类之前所要采取的一个重要的技术措施就是进行数据标准化。
数据标准化是聚类分析中最重要的一个数据预处理步骤, 这主要是因为它不仅可以为聚类计算中的各个属性赋予相同的权重, 还可以有效化解不同属性因度量单位不统一所带来的潜在的数量等级的差异, 这些差异如果不处理, 会造成聚类结果的失真。

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

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

4.3聚类变量的少而精

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

以下一些经验可参考:

  • 紧紧围绕具体分析目的和业务需求挑选聚类变量。
  • 通过相关性检测, 可防止相关性高的变量同时进人聚类计算。
  • 数据分析在很多时候是需要一些衍生变最来画龙点睛的。
  • 主成分分析, 作为一种常用的降维方法, 可以在聚类之前进行数据的清理, 帮助有效精简变量的数最, 确保参与聚类运算变最的少而精。

五、聚类分析的扩展应用

前面内容中谈到的聚类分析都是在典型业务场景中的应用。 除此以外, 聚类分析还有更多的扩展应用,这些扩展应用有的能显著提升单纯聚类分析所无法实现的商业应用价值,有的可作为辅助工具提升其他建模工具的应用效果, 而且效果很显著, 还有的突破了常规聚类应用的场景, 参与到个性化推荐的应用中了。

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

聚类分析技术在实践应用中有个比较明显的不足之处, 那就是参与聚类的变量数目不能多, 需要坚持少而精的原则, 否则不仅运算耗时, 而且聚类的效果也不好。 但是, 另 一方 面 从业务需求的实际出发, 业务应用应让尽可能多的指标进入分析范围, 这样得到的信息更丰富、 更全面, 也才更有可能发现业务线索。 那如何协调两者的矛盾呢?

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

5.2数据的探索和清理工具

聚类技术也可以作为一种数据清理工具, 在其他数据模型分析的前期 , 可使用聚类技术进行数据的探索、 清理工作, 作为其他建模技术有效应用的"清道夫".聚类技术的这种基础性价值, 主要表现在以下几个方面:

  • 聚类技术产生的聚类类别可以作为一个新的字段加入其他的模型搭建过程中, 在适当的项目场景里, 这种新的类别字段很可能会有效提高建模的效率和增强效果。
  • 聚类技术产生的聚类类别在合适的项目场景里, 可以作为细分群体的建模依据, 并且通常来说, 细分建模的模型精度常常比整体建模的模型精度要高些。
  • 聚类技术的应用本身就是数据探索和熟悉的过程, 这个过程对于其他算法的模型搭建来说常常也是必不可少的。 而且这种基于聚类技术对数据的认知比盲目的、 没有体系 的数据认知要来得更加有效率、 有章法。
  • 聚类技术针对变量的聚类是精简变量的有效方法。 变量聚类用来检验变量之间的关系, 目的是对数量较多的变量进行分类。 归于同一组里的变量之间关系紧密, 组内变最间的相关性会很高;而不同组群里的变量间相异性很大, 即组间变量相互独立。
  • 聚类技术还可以用来检查数据的共线性问题。

5.3个性化推荐的应用

在电子商务平台上, 买家与卖家如何高效、 精准匹配是个性化推荐的核心任务。 买家进入平台浏览第一个页面时, 个性化推荐就需要计算其可能感兴趣的卖家或者特定商品页面, 或者特定店面的页面,并第一时间把与之相关的页面发送到买家面前。 一般情况下, 通过对买家的历史浏览行为进行统计分析, 可以确定其感兴趣的特定商品大类, 但在此基础上如何进一步精确锁定商品大类下面的具体小类呢?聚类技术提供了一个独特的思路和方法。通过历史数据对该商品大类的买家进行聚类分析, 找出不同小类目的买家细分群体(聚类结果), 然后用这个聚类模型去判别这个新的买家最可能属于哪个细分群体, 再去匹配跟该细分群体最相近的卖家或者卖家的商品小类目, 这就是聚类思想在个性化推荐中的应用思路。

六、聚类分析在实际应用中的优势和缺点

尤其是针对大数据集的时候, K-Means 算法几乎是目前最主流的算法和应 用了。 具体来讲, 其应用优势体现在以下几个方面:

  • 目前聚类技术已经比较成熟, 算法也比较可靠, 而且长期的商业实践应用已经证明它是一个不错的数据群体细分的工具和方法。
  • 聚类技术不仅本身是一种模型技术, 可以直接响应业务需求, 提出细分的具体方案来指导实践;同时, 聚类技术还经常作为数据分析前期的数据摸底和数据清洗的有效思 想和工具。 这种多样性的特点使得聚类技术的应用场景更加丰富, 其价值也因此更加明显。
  • 如果聚类技术应用得好, 其聚类的结果比较容易用商业和业务的逻辑来理解和解释。
  • K-Means 算法具有简洁、 高效的特点。
  • K-Means 算法是 个不依赖顺序的算法。

缺点:

  • 数据分析师需要事先指定聚类的数目k。
  • 法对数据噪声和异常值比较敏感。

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

在聚类分析的实际应用中, 针对聚类结果的评估也有很多的维度和指标。 但是, 从数据化运营的实践经验来看, 任何模型的评估, 包括聚类分析的评估既要考虑统计 学意义上的指标、 维度, 同时更要关注其实践效果上的价值及业务背景下的价值。 尤其是对千聚类项目来说, 它跟分类(预测)项目的一个显著不同之处在于, 后者的评判有训练集、 验证集、 测试集的客观参照, 而对于聚类结果的评判来说, 一个对象分配到A类与分配到B类, 中间并没有太明确、 太客观的参照依据。鉴于此, 聚类结果的评判常常更加复杂和困难。 下面就来介绍一下常用的聚类评估方法及其指标体系。

7.1 业务专家的评估

聚类分析的结果评估首先要跟相应的落地应用场景相结合。 尽管目前关于聚类的评价指标和评价体系已经比较成熟, 但是总体来说, 业务专家的评估才是最重要的评价层面。

业务专家虽然可能不太了解聚类原理, 但是他们对于具体对象的大概所属群体特征还是有非常深刻的商业直觉和业务敏锐性的。如果对于聚类的结果, 多数业务专家都不满意、 不认可、 看不懂, 那么这个聚类的结果很可能是有问题的, 是值得怀疑的。虽然对于每个业务专家来说, 他们的评判非常主观, 但是采用全体专家平均分的技术手段, 是可以比较有效降低主观因素对于聚类效果评价的影响的。

业务专家对聚类结果进行评判时不仅仅只是对结果的合理性、 理解性进行评判, 更重要 的是常常会结合具体应用的业务场景来进行评判。

7.2聚类技术上的评价指标

鉴于 K-Means 算法和凝聚层次聚类算法在数据化运营实践中占绝对的主流应用地位,其中 K-Means 算法比后者应用更广泛,因此本节主要针对这两种算法的效果进行总结,当然这些指标的思路对于其他聚类算法而言也是有积极的借鉴和参考价值的。

  • RMSSTD (Root-Mean-Square Standard Deviation) : 群体中所有变量的综合标准差,RMSSTD 越小表明群体内(簇内)个体对象的相似程度越高,聚类效果越好。计算公式如下:
    在这里插入图片描述
    其中, S i S_i Si代表第 i i i个变量在各群内的标准差之和, p p p 为变量数量。
  • R-Square: 聚类后群体间差异的大小,也就是聚类结果可以在多大比例上解释原数据的方差,R-Square 越大表明群体间(簇间)的相异性越高,聚类效果就越好。计算公式如下:
    在这里插入图片描述
    其中,W代表聚类分组后的各组内部的差异程度,B代表聚类分组后各组之间的差异程度,T代表聚类分组后所有数据对象总的差异程度,并且T=W+B。
    按照聚类的思想来看,一个好的聚类结果,应该是在R-Square E [0,1] 的范围内,并且R-Square 越接近 1 越好,这说明了各个群类之间的差异,即B 越大,而同组内(群内)各对象间的差异,即W越小,这正是聚类分析所希望达到的效果。计算公式如下:
    在这里插入图片描述
    其中, p p p代表有 p p p个指标(变量), n n n代表有 n n n个组员, X s ‾ \overline{Xs} Xs代表总体平均值。
  • SPR (Semi Partial R-Square) : 该指标适用于层次方法中的凝聚层次聚类算法, 它表示当原来两个群体合并成新群体的时候, 其所损失的群内相似性的比例。 一般来说,SPR越小, 表明合并成新的群体时, 损失的群内相似性比例越小, 新群体内的相似性越高, 聚类效果就越好。
  • Distance Between Clusters : 该指标适用于层次方法中的凝聚层次聚类算法, 它表示在要合并两个细分群体(簇)时, 分别计算两个群体的中心, 以求得两个群体的距离。一般来说, 距离越小说明两个群体越适合合并成一个新群体。

上面总结的4个主要评价指标只是在聚类分析实践应用中最常用的指标, 并不是针对聚类结果的全部评价指标, 在实践应用中还有更多的指标可以供我们参考, 其中最重要的是从业务背景的角度所提出来的指标, 比如, 特定群体的数量不能太少, 聚类的结果要有很好的业务解释性等。

————————————————————————————————————————————————
博主码字不易,大家关注点个赞转发再走呗 ,您的三连是对我创作的最大支持^ - ^
在这里插入图片描述
参考:
《数据挖掘与数据运营》
《统计学习方法》

你可能感兴趣的:(#,机器学习,#,数据分析-数据挖掘知识,K-means,数据挖掘,数据运营,数据分析,聚类算法)