阅读之前看这里:博主是正在学习数据分析的一员,博客记录的是在学习过程中一些总结,也希望和大家一起进步,在记录之时,未免存在很多疏漏和不全,如有问题,还请私聊博主指正。
博客地址:天阑之蓝的博客,学习过程中不免有困难和迷茫,希望大家都能在这学习的过程中肯定自己,超越自己,最终创造自己。
聚类:聚类是根据给定的样本,依据它们特征的相似度或距离,将其归并到若干个“类”或“簇”的数据分析问题。
通俗的解释:物以类聚,人以群分。针对几个特定的业务指标,科研将观察对象的群体按照相似性和相异性进行不同的群组的划分。经过划分后,每个群组内部各对象间的相似度会很高,而在不同群组直接的对象彼此间将具有很高的相异度。
聚类分析的算法分为:
1.划分聚类
2.层次聚类
3.密度聚类
4.网格聚类
5.模型聚类
最常用的是划分聚类和层次聚类的方法。
层次聚类的方法是指让最相似的对象两两合并,这样不断地合并,最后就形成了一颗聚类树。
划分聚类的方法就是:给定 m m m个对象的数据集,以及希望生成的细分群体数量 K K K后,可采用这种方法将这些对象分成 K K K组 ( K ≤ m ) (K\leq m) (K≤m),使得每个组内对象是相似的, 而组间的对象是相异的。
聚类技术在数据分析和数据化运营中的主要用途表现在:既可以直接作为模型对观察对象进行群体划分, 为业务方的精细化运营提供具体的细分依据和相应的运营方案建议, 又可在数据处理阶段用作数据探索的工具, 包括发现离群点、 孤立点, 数据降维的手段和方法,通过聚类发现数据间的深层次的关系等。
聚类分析的一个重要用途就是针对目标群体进行多指标的群体划分, 而类似这种目标群体的分类常常就是精细化运营、个性化运营的基础和核心,只有进行了正确的分类, 才可以有效进行个性化和精细化的运营、服务及产品支持等, 从这个角度来看, 聚类分析技术对于数据化运营而言是非常重要、非常基础的。
总地来说, 聚类分析技术在数据化运营实践中常见的业务应用场景如下。
给定具有 n n n 个对象的数据集, 采用划分方法 (Partitioning Methods) 对数据集进行 k k k个划分, 每个划分(每个组)代表一个簇, k ≤ n k\leq n k≤n, 并且每个划分(每个簇) 至少包含一个对象而且每个对象一般来说只能属于一个组。对于给定的K值, 划分方法一般要做一个初始划分, 然后采取迭代重新定位技术, 通过让对象在不同组间移动来改进划分的准确度和精度。 一个好的划分原则是:同一个簇中对象之间的相似性很高(或距离很近),而不同簇的对象之间相异度很高(或距离很远)。目前主流的划分方法如下。
又叫K均值算法, 这是目前最著名、 使用最广泛的聚类算法。在给定一个数据集和需要划分的数目 k k k后,该算法可以根据某个距离函数反复把数据划分到 K K K个簇中, 直到收敛为止。
K-Means算法用簇中对象的平均值来表示划分的每个簇,其大致的步骤是,首先从随机抽取的K个数据点作为初始的聚类中心(种子中心),然后计算每个数据点到每个种子中心的距离,并把每个数据点分配到距离它最近的种子中心; 一旦所有的数据点都被分配完成,每个聚类的聚类中心(种子中心)按照本聚类(本簇)的现有数据点重新计算;这个过程不断重复, 直到收敛, 即满足某个终止条件为止,最常见的终止条件是误差平方和 (SSE) 局部最小。
又叫K中心点算法, 该算法用最接近簇中心的 个对象来表示划分的每个簇。 K-Medoids算法与K-Means算法的划分过程相似, 两者最大的区别是 K-Medoids算法是用簇中最靠近中心点的一个真实的数据对象来代表该簇的, 而K-Means 算法是用计算出来的簇中对象的平均值来代表该簇的, 这个平均值是虚拟的, 并没有一个真实的数据对象具有这些平均值。
在给定n个对象的数据集后, 可用层次方法(Hierarchical Methods)对数据集进行层次分解, 直到满足某种收敛条件为止。 按照层次分解的形式不同, 层次方法又可以分为凝聚层 次聚类和分裂层次聚类:
层次方法最大的缺陷在千, 合并或者分裂点的选择比较困难, 对于局部来说, 好的合并 或者分裂点的选择往往并不能保证会得到高质量的全局的聚类结果,而且一 旦一个步骤(合并或分裂)完成, 它就不能被撤销了。
传统的聚类算法都是基于对象之间的距离, 即距离作为相似性的描述指标进行聚类划分, 但是这些基于距离的方法只能发现球状类型的数据, 而对于非球状类型的数据来说, 只根据距离来描述和判断是不够的。鉴于此, 人们提出了一个密度的概念, 基于密度的方法,其原理是: 只要邻近区域里的密度(对象的数量)超过了某个阀值, 就继续聚类。 换言之, 给定某个簇中的每个数据点(数据对象), 在一定范围内必须包含一定数量的其他对象。 该算法从数据对象的分布密度出发, 把密度足够大的区域连接在一起, 因此可以发现任意形状的类。 该算法还可以过滤噪声数据(异常值)。
基于密度的方法的典型算法包括 DBSCAN算法 以及其扩展算法 OPTICS。 其中,DBSCAN算法会根据一个密度阀值来控制簇的增长, 将具有足够高密度的区域划分为类, 并可在带有噪声的空间数据库里发现任意形状的聚类。 尽管此算法优势明显, 但是其最大的缺点就是算法需要用户确定输入参数, 而且对参数十分敏感。
基于网格的方法 (Grid-Based Methods) 将把对象空间扯化为有限数目的单元, 而这些单元则形成了网格结构, 所有的聚类操作都是在这个网格结构中进行的。 该算法的优点是处理速度快, 其处理时间常常独立千数据对象的数目, 只跟量化空间中每一维的单元数目有关。 基千网格的方法的典型算法是STING (Statistical Information Grid) 算法。 该算法是一种基于网格的多分辨率聚类技术, 将空间区域划分为不同分辨率级别的矩形单元,并形成一个层次结构, 且高层的低分辨率单元会被划分为多个低一层次的较高分辨率单元。 这种算法从最底层的网格开始逐渐向上计算网格内数据的统计信息并储存。 网格建立完成后, 则用类似 DBSCAN 的方法对网格进行聚类。
在数据化运营实践中, 由于针对大规模数据集所采用的聚类算法主要是K-Means 算法应用, 因为其简洁、高效、易理解、易实施。因此, 除非特别说明, 本章所展开讲解的聚类技术的具体内容都是针对K-Means 算法进行分析和阐述的。
K-Means 算法对噪声和异常值非常敏感, 这些个别数据对于平均值的影响非常大, 相对而言, K- 中心点的方法不像K-Means 算法, 它不是求样本的平均值, 而是用类中最接近于中心点的对象来代表类, 因此K- 中心点的方法对于噪声和异常值没有K-Means 算法那么敏感。鉴于K-Means 算法的这一局限性, 我们应用该算法时需要特别注意这些数据噪声和异常值。
针对聚类中的数据噪声和异常值, 常用的处理方法如下:
为了避免对度量单位选择的依赖, 在聚类之前所要采取的一个重要的技术措施就是进行数据标准化。
数据标准化是聚类分析中最重要的一个数据预处理步骤, 这主要是因为它不仅可以为聚类计算中的各个属性赋予相同的权重, 还可以有效化解不同属性因度量单位不统一所带来的潜在的数量等级的差异, 这些差异如果不处理, 会造成聚类结果的失真。
数据的标准化有多种不同的方式, 其中, 尤以标准差标准化最常用。标准差标准化, 又叫 Z-Score 标准化 (Zero-Mean Normalization), 经过这种方法处理后的数据符合标准正态分布, 即均值为0, 标准差为l , 其转化公式如下:
x = ( x − μ ) / σ x = (x - \mu)/\sigma x=(x−μ)/σ
其中, μ \mu μ为所有样本数据的均值, σ \sigma σ为所有样本数据的标准差。
在聚类分析中, 参与聚类的指标变量不能太多, 如果太多, 一方面会显著增加运算的时间,更重要的是变量之间或多或少的相关性会严重损害聚类的效果, 并且太多的变量参与其中会使随后的聚类群体的业务解释变得很复杂。 鉴于此, 聚类之前, 如何精心挑选特定的少数变量参与聚类是聚类分析技术应用中的又一个关键点。
以下一些经验可参考:
前面内容中谈到的聚类分析都是在典型业务场景中的应用。 除此以外, 聚类分析还有更多的扩展应用,这些扩展应用有的能显著提升单纯聚类分析所无法实现的商业应用价值,有的可作为辅助工具提升其他建模工具的应用效果, 而且效果很显著, 还有的突破了常规聚类应用的场景, 参与到个性化推荐的应用中了。
聚类分析技术在实践应用中有个比较明显的不足之处, 那就是参与聚类的变量数目不能多, 需要坚持少而精的原则, 否则不仅运算耗时, 而且聚类的效果也不好。 但是, 另 一方 面 从业务需求的实际出发, 业务应用应让尽可能多的指标进入分析范围, 这样得到的信息更丰富、 更全面, 也才更有可能发现业务线索。 那如何协调两者的矛盾呢?
一方面坚持 参与聚类的变量少而精的原则, 另 一方面把非聚类的业务指标与聚类结果一起拿来分析、提 炼、 挖掘, 这种相辅相成的做法在聚类分析的应用实践中已经得到了普遍的认可和采用。
聚类技术也可以作为一种数据清理工具, 在其他数据模型分析的前期 , 可使用聚类技术进行数据的探索、 清理工作, 作为其他建模技术有效应用的"清道夫".聚类技术的这种基础性价值, 主要表现在以下几个方面:
在电子商务平台上, 买家与卖家如何高效、 精准匹配是个性化推荐的核心任务。 买家进入平台浏览第一个页面时, 个性化推荐就需要计算其可能感兴趣的卖家或者特定商品页面, 或者特定店面的页面,并第一时间把与之相关的页面发送到买家面前。 一般情况下, 通过对买家的历史浏览行为进行统计分析, 可以确定其感兴趣的特定商品大类, 但在此基础上如何进一步精确锁定商品大类下面的具体小类呢?聚类技术提供了一个独特的思路和方法。通过历史数据对该商品大类的买家进行聚类分析, 找出不同小类目的买家细分群体(聚类结果), 然后用这个聚类模型去判别这个新的买家最可能属于哪个细分群体, 再去匹配跟该细分群体最相近的卖家或者卖家的商品小类目, 这就是聚类思想在个性化推荐中的应用思路。
尤其是针对大数据集的时候, K-Means 算法几乎是目前最主流的算法和应 用了。 具体来讲, 其应用优势体现在以下几个方面:
缺点:
在聚类分析的实际应用中, 针对聚类结果的评估也有很多的维度和指标。 但是, 从数据化运营的实践经验来看, 任何模型的评估, 包括聚类分析的评估既要考虑统计 学意义上的指标、 维度, 同时更要关注其实践效果上的价值及业务背景下的价值。 尤其是对千聚类项目来说, 它跟分类(预测)项目的一个显著不同之处在于, 后者的评判有训练集、 验证集、 测试集的客观参照, 而对于聚类结果的评判来说, 一个对象分配到A类与分配到B类, 中间并没有太明确、 太客观的参照依据。鉴于此, 聚类结果的评判常常更加复杂和困难。 下面就来介绍一下常用的聚类评估方法及其指标体系。
聚类分析的结果评估首先要跟相应的落地应用场景相结合。 尽管目前关于聚类的评价指标和评价体系已经比较成熟, 但是总体来说, 业务专家的评估才是最重要的评价层面。
业务专家虽然可能不太了解聚类原理, 但是他们对于具体对象的大概所属群体特征还是有非常深刻的商业直觉和业务敏锐性的。如果对于聚类的结果, 多数业务专家都不满意、 不认可、 看不懂, 那么这个聚类的结果很可能是有问题的, 是值得怀疑的。虽然对于每个业务专家来说, 他们的评判非常主观, 但是采用全体专家平均分的技术手段, 是可以比较有效降低主观因素对于聚类效果评价的影响的。
业务专家对聚类结果进行评判时不仅仅只是对结果的合理性、 理解性进行评判, 更重要 的是常常会结合具体应用的业务场景来进行评判。
鉴于 K-Means 算法和凝聚层次聚类算法在数据化运营实践中占绝对的主流应用地位,其中 K-Means 算法比后者应用更广泛,因此本节主要针对这两种算法的效果进行总结,当然这些指标的思路对于其他聚类算法而言也是有积极的借鉴和参考价值的。
上面总结的4个主要评价指标只是在聚类分析实践应用中最常用的指标, 并不是针对聚类结果的全部评价指标, 在实践应用中还有更多的指标可以供我们参考, 其中最重要的是从业务背景的角度所提出来的指标, 比如, 特定群体的数量不能太少, 聚类的结果要有很好的业务解释性等。
————————————————————————————————————————————————
博主码字不易,大家关注点个赞转发再走呗 ,您的三连是对我创作的最大支持^ - ^
参考:
《数据挖掘与数据运营》
《统计学习方法》