KMeans,分层聚类以及客户分群案例

客户分群
它属于聚类,即属于无监督学习的一种应用
客户分群的目的是每一组特征描述丰富详细,不同组间特征差异明显,但组内特征相似
它是一个计算距离的过程,主要是用欧式距离去解决

在这里插入图片描述

什么是分群?
将现有消费者群体按一定规则分为若干个小群组,使得
– 每一组特征描述丰富详细,不同组间特征差异明显
– 组内特征相似
分组的特征可引导营销策略制定
分群策略使用不同维度数据
分群策略可用于公司层面制定战略品牌战略目标,方便跨部门沟通(市场,销售,服务)

可用于分群的有用变量
在这里插入图片描述

K-Means聚类分析方法论
KMeans聚类是以样本间距离为基础
它是将所有的观测之间划分到K个群体,使得群体和群体之间的距离尽可能大,同时群体内部的观测之间的距离和最小
Kmeans需要确定有多少个中心点
在这里插入图片描述

Kmeans步骤:

  1. 先随机选取K个中心点
  2. 图里每个点都会计算它到K个中心点的距离
  3. 每个点根据它和每个中心点距离选取它现在属于哪个组
  4. 下一步按照分组后的点,选取每组的质心作为新的中心点
  5. 重复前面2-4的步骤,一直迭代到中心点不动为止
    在这里插入图片描述

KMeans算法的特点:

  1. 对计算机性能要求不高
  2. 可以实现快速迭代

建模步骤
变量预处理
变量标准化
变量的筛选
确定分类个数

建模第一步:变量预处理
收到数据通常需要经过处理才能用于分析
– 缺失值(变量缺失太多,直接删除变量;变量缺失少,用中位数,众数或者均值去填充 )
– 异常值(极大或极小,用1%或99%分位点替代)
– 分类变量需要转化为哑变量(0/1数值)
– 分类变量类别过多

哑变量:对于分类变量,如教育程度(小学/初中/高中)构建成三个0/1哑变量(小学/初中/高中)
注意:对于分类变量里如果它所需要哑变量过多时,比如一个分类类别里需要构建30个哑变量,那么我们可以考虑将一些取1占比过低(如只有1%的1)左右的哑变量进行剔除
男性与女性哑变量举例如下:
在这里插入图片描述

不同统计方法对数据有不同的要求
– 决策树允许缺失值和异常值
因为决策树是根据逻辑判断选出,由大于几或者小于几决定,缺失值不会对它构成威胁,同样异常值也不会对它构成威胁
https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/7418851.html
– 聚类分析和回归模型则不支持缺失值
聚类不能有缺失值是因为它会拉偏质心,导致聚类不准;回归模型不支持缺失值是因为它使得有缺失值的变量失去了预测的作用

建模第二步:变量标准化
为什么要做标准化:
变量的量纲不一样会引起距离的偏差
聚类算法一定要进行标准化(*重要)
在这里插入图片描述

建模第三步:变量的筛选
变量筛选方法:

  1. 商业意义(无法进行商业解释的变量剔除)
  2. 多个维度
  3. 变量间相关性(相关性过高的变量会删掉一些,确保留住的变量尽可能跨越多个维度)

建模第四步:确定分类个数
尝试3-8个分组时的情况(4、5、6)
比较以下5个指标:
— CCC值
CCC值测量模型分类结果和随机分类结果差别,即组群间的差异性,如果差别越大,则模型分群越佳
—F值(Pseudo-F statistic)
F值测量分组的紧密性,即组内的相似性,F值越大越好
— 保证分群结果覆盖性(不同群所占总体的比例尽量平均)
— 分群结果的稳定性
重复多次分群,看结果是否稳定
— 分群结果是否有好解释的商业意义
Kmeans也可以用肘部法则去判断K值选取
在这里插入图片描述

分层聚类方法
分层聚类也称系统聚类法,是根据个体间距离将个体向两两聚合,再将聚合的小群体两两聚合一直到聚为一个整体,最终根据实际需要选定聚合层级确定凝聚到的群体个数,也称作反向聚类

在这里插入图片描述

群体间距离的主要定义方式

  1. 最短距离
  2. 最远距离
  3. 中间距离
  4. 重心法(比较合理的方法)
  5. 类平均法(比较合理方法,消除了最短和最远的距离影响)
    在这里插入图片描述

KMeans与分层聚类比较
KMeans是一种快速聚类法,采用该方法得到的结果比较简单易懂,对计算机性能要求不高,故应用也比较广泛;但是,KMeans需要事先制定类的个数(K),所以在实际操作中需要对K事先有一定的认识
分层聚类不需要事先确定聚到多少个类,后期可以根据业务和对数据了解确定类的个数;但是,分层聚类法需要计算出样品间距离,还要在聚类的每一步计算‘类间距离’,相应的计算量比较大;当样本容量很大时,需要占据非常大的计算机内存空间,给应用带来一定困难

KMeans和分层聚类的结合
这两种聚类方法可以相互补充
– KMeans可扩展性好,可用于大数据集
– 分层聚类可扩展性差,但输出聚类的结构有意义
可将两种方法结合使用
– 使用KMeans建立起许多小聚类,比如100个
– 对这些小聚类通过选取它们每一类的中心点,使用分层聚类建立群集的层次化结构
– 分析这些聚类, 确定合适的群集数目

客户分群分析流程:
在这里插入图片描述
在这里插入图片描述

EM模型聚类概述
什么是EM算法?
最大期望(EM)算法是在概率模型中寻找参数最大的似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量
KMeans可看作是EM模型聚类的一个特例
EM算法实施包含两步
– E步:根据参数初始值或上一次迭代的模型参数来计算隐形变量的后验概率,其实就是隐形变量的期望,作为隐藏变量的现估计值
– M步:将似然函数最大化以获得新的参数值

客户分群案例
在计算出不同群体客户特征后,可以在excel里计算出平均值,再求它们的INDEX,对index值很高和很低的代表客户类别的主要特征

对于数据的处理是对数据的行做处理,但是在做客户分群时候的聚类是对列进行聚类
客户分群中减小变量的层次聚类法:

  1. 层次聚类进行聚类所有标准化后的变量,之后用兰德系数去判断选择聚合成几类
  2. 根据上一步的兰德系数以及箱型图判断需要构建几类后,再对22个变量进行cut_tree,将cut_tree中的K值对应上一步中构建的类数,比如想要聚类成K=3
  3. 之后,对聚类后的每个簇进行主成份分析,可以得到在每个类里,各个变量所贡献的解释方差
    example:如果从22个变量里想要挑出来10个变量如何做?
    answer: 取k=10,从22个变量里构建出10个簇,之后在10个簇里分别做主成份分析,选择各个簇里主成份分析中最大的主成份来代表这个簇的解释变量,这样就构建了22个变量选择10个变量的目的

另一种选取最大变量的方法:
直接对所有变量进行主成份分析,然后查看各个变量在进行线性变换后所得到结果贡献了80%模型解释性是取其变量的个数,比如22个变量中最有解释力的变量里有12个解释了80%左右的模型时,我们选取这12个作为模型的解释变量,删除其余10个

KMeans算法
将标准化后的数据设定成K类簇去迭代,得到K个簇中心,以及总平方和,总平方和=组内平方和+组间平方和;组内平方和是一个簇内各个点之间的平方和距离,而组间平方和是一个簇内各个点和其他簇内点间的平方和距离;
组间平方和/总平方和的比例越大越好,说明分类的效果越好;故针对同一样本的数据,选取不同的K值,如K=4,k=5,k=6,可以得到不同的组间平方和/总平方和的比例,判断该比例越大,就取哪一种作为我们分类的k值。
判断k值的其他方法:

  1. 聚类优度
  2. 轮廓系数

总结:
变量聚类有两种方法

  1. 如果分群聚类后的结果还是原始变量,则可以先跑一个兰德系数后,查看分成了几类,假如看tree后看到分成了10类,之后再cut——tree里把参数写成10,它会出来十组不同的结果,每一个结果会写出当组数据跟A组数据?的相关性,而十组里的每个结果里的第一个变量是与A组相关性最强的,那么选择每组里第一个变量来代替那22个变量。(保留原始变量做变量聚类的方法)
  2. 主成份分析法:直接拿22个变量直接跑,找到前多少个变量可以解释它80%的累计变异,再用这能解释80%累计变异的变量来代表所有的变量。

对于客户分群,可以考虑在做完对变量的聚类后,再开始对数据做聚类。如果变量已经很少,则可以直接对数据做聚类,不需要再对变量做聚类

发布了69 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41636030/article/details/89007379
今日推荐