将现有消费群体按一定规则分成若干个特征鲜明的小群体,从而使得:
* 不同组别间特征差异明显;
* 同一群组内客户特征相似。
二、为什么要客户分群?
* 客户群体分化,大众化营销失去优势,精准化营销逐渐被认可;
* 可深入了解客户,提升消费者对品牌的黏性,提升销售的效率和效益;
* 减少不必要的营销经费和花费。
三、聚类算法:
1、层次聚类:
(1)过程:个体两两聚合(样本间距离)--小群体两两合并(群体间距离)--较大群体两两聚合(群体间距离)--形成一个大群体;
(2)优缺点:
a、不足:由于反复计算距离,运算速度较慢;
b、优点:
* 可以是分类或连续性变量
* 既可对变量聚类(R型聚类),也可对记录聚类(Q型聚类)
* 一次运行即可得到完整的分类序列
2、K-means聚类
(1)含义:将所有观测分成k个群体,是的群体间距离尽量大,同时群体内部的观测的‘距离和’最小,由于运算简单,因此是目前流行的聚类方法。
(2)聚类步骤:设定要分群的组数(K)--随机每组的中心--逐一计算每一记录到各组中心点的距离,将离中心最近的个体归到对应的组--重新计算均值,以此作为再次迭代的中心--用新的中心点重新对个体进行归组,及重复前面两步骤,直到达到要求
(3)优缺点:
a、优点:
* 速度快于层次聚类
* 内存占用小
b、不足:
* 只能对记录聚类,不能对变量聚类。
* 对初始聚类中心有一定的依赖性
* 由于要事先选定聚类数,所以要尝试多次,以找出最佳聚类。
2、EM算法:
(1)含义:最大期望(EM)算法是在概率模型中寻找参数最大似然估计,或最大后验估计的算法,其中概率模型依赖于无法观测的隐含变量。
(2)两步骤:
a、E步(Expectation)根据参数初始值或上一次迭代的模型参数来计算出隐含变量的后验概率,其实就是隐含变量的期望,作为隐含变量的现估计值。
b、M步(Maximization)将似然函数最大化以获得新的参数值。
注意:似然函数最大化指组内距离平方和最小。
四、距离计算:
1、样本间距离计算:
(1)通用公式:闵可夫斯基距离
(2)欧式距离,即直线距离,p=2
(3)曼哈顿距离,折线距离,大于欧氏距离,p=1
(4)切比雪夫距离,p趋向无穷大,选最大距离
2、群体间距离
(1)最短距离法,指组间最近两个样本点的距离
(2)最长距离法,指组间最远两个样本点的距离
(3)重心法,群体先平均再求距离
(4)类平均法,群体先求距离再平均
五、变量选择:
1、基于业务场景选择变量
2、变量间相关性尽量低(无共线性),根据VIF和R square
3、具体可从人口统计学(个人信息数据)、商家的消费者数据(通过RFM衍生变量)、第三方行为数据(消费者的需求和兴趣)三个方面进行选择
六、如何预处理变量?
1、填充缺失值
首先确认是否错误,是否是零值;如果不是,Category可根据情况进行填充,Numeric数据可先Quantile,再用均值、中位数、线性插值等填充。
2、异常值处理
可用Caping-Floor将数据达到95%以内,(除非异常值有价值,需单独处理)
3、字符型变量转换处理
比如male 0,female 1
4、标准化(统一量纲),量纲不一致为导致距离计算的偏差
方法一:Z-Score标准化
sed(X)=(X-Xcap)/Sp
方法二:离差标准化
(x-min(x))/(max(x)-min(x))
七、初始中心点的选择
(1)选择彼此距离尽可能远的点作为中心点;
(2)先通过采样,基于层次聚类确定K个簇,以簇的中心点作为K-means的中心点输入
(3)多次随机选择中心点训练K-means,选择效果最好的聚类
| 导语 在产品的增长分析当中,想关注符合某些条件的一部分用户,不仅想知道这些人的整体行为(访问次数,访问时长等),还希望知道其中差异较大的细分群体。 用户分群方法,能帮助我们对差异较大的群体分别进行深入分析,从而探究指标数字背后的原因,探索实现用户增长的途径。
一、 用户分群的应用场景
在日常的数据工作中,我们经常接到这样的需求:想关注符合某些条件的一部分用户,不仅想知道这些人的整体行为(访问次数,访问时长等),还希望知道具体是哪些人符合这些条件。后查看这些人的数据导出用户名单,针对性的发送tips消息。有时还想进一步查看某些人在使用某功能上的具体 *** 作行为。用户分群,就是用来满足这类需求的工具方法,它能帮助我们对差异较大的群体分别进行深入分析,从而探究指标数字背后的原因,探索实现用户增长的途径。
如用户画像分群,核心价值在于精细化的定位人群特征,挖掘潜在的用户群体。使网站、广告主、企业及广告公司充分认知群体用户的差异化特征,根据群体的差异化特征,帮助客户找到营销机会、运营方向,全面提高客户的核心影响力。
二、 用户分群
类型 一 :不分群 ,如全量活跃用户投放,群发短信等,缺点是没有针对性,容易引起用户反感。
类型 二 :用户基本信息分群 ,如根据用户注册的信息分群。相比不分群,这种方法已具备一定的针对性, 但是由于对用户不是真正了解,产生不了很好的结果预期。
类型三:用户画像分群 ,如年龄、性别、地域、用户偏好等,画像建设的焦点是为用户群打“标签”,一个标签通常是人为规定的高度精炼的特征标识,最后将用户分群的标签综合,即可勾勒出该用户群的立体“画像”。画像分群让我们真正了解了用户的某些特征,对业务推广帮助很大。
类型四:根据用户行为进行分群 ,此阶段会在画像分群的基础上关注用户的行为特征, 如根据用户的注册渠道和活跃习惯,制定不同的营销推广策略。
类型五:聚类和预测建模分群 ,聚类建模可以根据用户的综合特征指标,将用户分为不同的群体,如将用户划分为娱乐型、挂机型、社交型、办公型等;预测建模即尝试去猜测用户下一步的态度与行为(例如想知道什么,想做什么)。正因如此,它对将复杂的行为过程变为营销自动化,是十分有帮助的。
三、 常见的用户分群维度
1. 统计指标:年龄,性别,地域
2.付费状态:免费,试用,付费用户
3.购买历史:未付费用户,一次付费用户,多次付费用户
4.访问位置:用户使用产品的区域位置
5.使用频率:用户使用产品的频率
6.使用深度:轻度,中度,重度用户
7.广告点击:用户点击了广告 vs 未点击广告
四、 常用的聚类分群方法介绍
上面介绍了一些关于分群的方法和思路, 接下来重点讲解一下用户聚类分群,聚类分群可分为层次聚类(合并法,分解法,树状图)和非层次聚类(划分聚类,谱聚类等),而较常用的互联网用户聚类方法为K-means聚类方法和两步聚类法(均为划分聚类) 。
聚类分析的特征 :简单、直观;
主要应用于探索性的研究,其分析的结果可以提供多个可能的解,选择最终的解需要研究者 的主观判断和后续的分析;
不管实际数据中是否真正存在不同的类别,利用聚类分析都能得到若干类别的解;
聚类分析的解依赖于研究者所选择的聚类变量,增加或删除一些变量对最终的解都可能产生实质性的影响。
研究者在使用聚类分析时应特别注意可能影响结果的各个因素。
异常值和特殊的变量对聚类有较大影响
当分类变量的测量尺度不一致时,需要事先做标准化处理。
聚类分析的弱点:
聚类是一种无监督类分析方法,无法自动发现应该分成多少个类;
期望能很清楚的找到大致相等的类或细分市场是不现实的;
样本聚类,变量之间的关系需要研究者决定;
不会自动给出一个最佳聚类结果。
聚类分析的应用过程:
(1)选择聚类变量
在选取特征的时候,我们会根据一定的假设,尽可能选取对产品使用行为有影响的变量,这些变量一般包含与产品密切相关的用户态度、观点、行为。但是,聚类分析过程对用于聚类的变量还有一定的要求: 1.这些变量在不同研究对象上的值具有明显差异;2.这些变量之间不能存在高度相关。
首先,用于聚类的变量数目不是越多越好,没有明显差异的变量对聚类没有起到实质意义,而且可能使结果产生偏差;其次,高度相关的变量相当于给这些变量进行了加权,等于放大了某方面因素对用户分类的作用。识别合适的聚类变量的方法:1.对变量做聚类分析,从聚得的各类中挑选出一个有代表性的变量;2.做主成份分析或因子分析,产生新的变量作为聚类变量。
(2)聚类分析
相对于聚类前的准备工作,真正的执行过程显得异常简单。数据准备好后,导入到统计工具中跑一下,结果就出来了。这里面遇到的一个问题是,把用户分成多少类合适?通常,可以结合几个标准综合判断: 1.看拐点(层次聚类会出来聚合系数图,一般选择拐点附近的几个类别);2.凭经验或产品特性判断(不同产品的用户差异性也不同);3.在逻辑上能够清楚地解释。
(3)找出各类用户的重要特征
确定一种分类方案之后,接下来,我们需要返回观察各类别用户在各个变量上的表现。根据差异检验的结果,我们以颜色区分出不同类用户在这项指标上的水平高低。如下图,红色代表“远远高于平均水平”,黄色代表“平均水平”,蓝色代表“远远低于平均水平”。其他变量以此类推。最后,我们会发现不同类别用户有别于其他类别用户的重要特征。
五、 K-means 聚类在QQ用户分群中的应用案例
在本案例中,我们首先来看最常用的K-Means聚类法(也叫快速聚类法),这是非层次聚类法当中最常用的一种。因其简单直观的计算方法和比较快的速度(相对层次聚类法而言),进行探索性分析时,K-Means往往是第一个采用的算法。并且,由于其广泛被采用,在协作沟通时也节省了不少用于解释的时间成本。
1. K-means 的算法原理:
1. 随机取k个元素,作为k个簇各自的中心。
2. 计算剩下的元素到k个簇中心的相似度,将这些元素分别划归到相似度最高的簇。
3. 根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
4. 将全部元素按照新的中心重新聚类。
5. 重复第4步,直到聚类结果不再变化,然后结果输出。
假设我们提取到原始数据的集合为(X1, X2, …, Xn),并且每个Xi为d维的向量, K-means聚类的目的就是,在给定分类组数k(k ≤ n)值的条件下,将原始数据分成k类,S = {S1, S2, …, Sk},在数值模型上,即对以下表达式求最小值(μi 表示分类Si 的平均值):
2. QQ 用户分群背景和目标:
QQ日登录用户超过5亿,覆盖社会各种群体(不同年龄、不同行业、不同兴趣等),需要将大盘用户进行一定细分,然后针对性的开展运营活动。
3. 聚类变量选取: 用户画像特征、用户状态特征、用户活跃特征
4. 聚类分析和结果: 通过 相关性分析和变量重要性分析 ,剔除部分效果差的变量,然后对剩余11个变量进行多次训练(目标聚类个数,参与的变量,组内个体差异容忍度),最终得出聚类结果
5. 结果解读和命名
聚类1特征:年龄未知或低龄,好友少,活跃度和使用粘性都极低 【低端低龄群体】
聚类2特征:年龄偏小,前台在线和消息活跃均比较高 【学生活跃群体】
聚类3特征:平均27岁左右,PC端和手机端活跃度均非常高 【职场高粘性群体】
聚类4特征:平均28岁左右,前台在线和消息活跃都极低 【职场低粘性群体】
聚类5特征:年龄较高,手机在线时长高,但消息沟通极少 【高龄低活跃群体】
六、 两步聚类和k-means聚类的效果对比
前面谈到的K-Means聚类法有简单、直观和快速的优点。但是其缺点是只能采用数值型变量,不能包含类别变量,并且对 异常值非常敏感,离群值很容易严重影响聚类结果 。并且,当数据集比较大(在腾讯,这种情况很常见),不能把所有数据点都装进内存的时候,K-Means就无法在单机上运行。而两步聚类法则克服了以上缺点,可以包含类别变量和数值型变量,并且当硬件条件不足或数据集非常大时,都能顺利运行。这种两步聚类法可以看成是改进版BIRCH聚类算法和层次聚类法的结合,先用BIRCH算法中的“聚类特征树”做预聚类,形成子类,然后把子类作为输入,做层次聚类。
1. 两步聚类的原理:
第一步:预聚类过程:
构建聚类特征树(CFT),分成很多子类。
开始时,把某个观测量放在树的根节点处,它记录有该观测量的变量信息,然后根据指定的距离测度作为相似性依据,使每个后续观测量根据它与已有节点的相似性,放到最相似的节点中,如果没有找到某个相似性的节点,就为它形成一个新的节点。在这一步当中,离群点将会被识别并剔除,不会像在K-Means当中那么容易地影响结果。
第二步:正式聚类:
将第一步完成的预聚类作为输入,对之使用分层聚类的方法进行再聚类(以对数似然函数作为距离的度量)。每一个阶段,利用施瓦兹贝叶斯信息准则(BIC)评价现有分类是否适合现有数据,
并在最后给出符合准则的分类方案。
可自动确定或者根据业务需要人工指定分类数目;
3. 两步聚类的效果对比:
对第六点同样的数据进行两步聚类,得到模型最优结果如下
6. 两步聚类结果解读
聚类1特征:年龄未知或低龄,好友少,活跃度和使用粘性都极低 【低端低龄群体】
聚类2特征:年龄偏小,前台在线和消息活跃均比较高【学生或新入职场高活跃群体】
聚类3特征:平均24岁左右,在线和消息活跃均较低 【青年低活跃群体】
聚类4特征:平均25岁左右,在线超高但活跃很低 【青年挂机群体】
聚类5特征:平均28岁左右,手机使用较少但PC活跃很高 【职场办公群体】
聚类6特征:年龄较高,手机在线时长高,但消息沟通极少 【高龄低活跃群体】
七、 业务案例 – 通过K-Means聚类,挖掘特殊行为模式的手机QQ客户群
1. 业务需求
在本案中,产品经理希望了解登录不活跃手机QQ用户的行为模式,并且能针对不同的行为组合,对庞大的用户群体进行细分,从而关注不同群体的不同需求,甚至挖掘垂直领域需求,从而在产品或运营侧采取措施,拉活沉默用户,提高DAU。
2. 分析目标
1. 发现手Q使用行为模式异于大盘典型用户的细分群体
2. 粗估每个细分群体的用户数量
3. 了解每个细分群体的行为特征和用户画像
4. 基于上述结果,在拉活方面,提出产品或运营建议或明确进一步探索的方向
3. 分析过程
a) 特征提取
分析聚焦于用户在手机QQ的点击行为,例如删除消息,查看好友资料页面,点击好友动态按钮等,于是我们从用户的点击上报信息着手,对每个用户的点击次数进行加总。在本例中,考虑到用户行为的典型性,选取了4个完整的周,共28天的数据,并且时间窗当中无任何节日。另外,考虑到计算性能和探索性分析需要反复迭代的场景,只从QQ大盘当中随机抽取千份之一的用户作为代表。
b) 特征筛选
在特征提取阶段一共提取了接近200个 功能点的点击数据 。但是这些特征当中,有些覆盖面非常低,只有百份之一的用户在28天当中曾经使用,这些低覆盖的特征会首先被去除。
另外,前面谈到高度相关的变量也会干扰聚类过程,这里对所有特征对两两进行计算 皮尔逊相关系数 ,对高相关特征(相关系数大于0.5)则只保留其中保留覆盖面最广的特征,以便最大限度地体现用户差异。
c) 特征改造-探索
经过上面两步后,笔者曾进行过多次聚类探索,但无一例外,聚类结果都呈现出一个超级大类搭配数十个非常小的小类(几个或十几个用户)。这样的结果,显然与我们的分析目标是想违背的。其一,这里挖掘出的小群体体积太小,从业务角度来说没有价值;其二,超级大类基本等同与大盘用户,没有能找出其中的用户差异。
为什么会有这样的结果呢,主要是因为点击行为基本上遵循的是 幂分布 ,大量用户集中在低频次区间,而极少量用户却会有极高的频次,这样在典型的聚类算法中,高频次用户都会被聚集成人数极少的小类,而大量的低频词用户就会被聚集成一个超级大类。
对于这种情况,典型的解决方法是 对频次取对数 , 使幂分布转化为近似的正态分布再进行聚类 ,在本次研究中,取自然对数后,聚类效果仅有少量改善,但仍然停留在一个超级大类加上若干人数极少的小类的情况。背后原因,是点击行为数据的特点之一:核心功能和热门项目,例如聊天框、好友动态按钮等点击人数极多,而 相对冷门的功能则有大量的0值 。这样的情况下,取对数是没有改善的。
回到本次分析的目标当中,我们需要“发现手Q使用行为模式异于大盘典型用户的细分群体”,如果丢弃这些冷门功能只看热门选项,则无法找出一些相对小众的行为模式达成分析目标。而这种数值稀疏的情况则让笔者想起了文本分类。在文本分类的词袋模型当中,每个“文档“的词向量同样存在大量的0值,词袋模型的解决方法是对词向量用TF-IDF方法进行加权。下面简单介绍这种方法
d) 特征改造-TF-IDF
在文本分类的词袋模型当中,需要将一篇篇“文档”(Document)(例如一篇新闻,一条微博,一条说说)按照其讨论的主题聚合在一起,而一篇文档里面有很多词(Term)。TF(Term-Frequency 词频率)就是指一个词在一篇文档里的出现次数在整篇文档总词数当中的占比,这样简单的计算就知道一篇文档中什么词更多,而不会受到文档本身长度的影响。
另一方面,有些词是是什么文章都会用的“大众”词,这些词对于文章主题的分辨是没什么帮助的(例如新闻当中的“报道”“记者”等等)。对于这样的“大众”词,就要降低他的权重,所以可以通过(文档总数/含有某个词的文档数)这样的计算达到目的,每篇文章都有的词权重会取0,包含的文档数越少,数值越大。这计算就是IDF(Inverse Document Frequency 逆文档频率)。
按照上面的讨论,读者可能已经想到了,如果把“文档”的概念变为“用户”,把“词的出现次数”替换为“功能的点击次数“,就正好可以用来把用户行为的类型进行分类。首先是低频率用户的功能偏好会通过TF的计算得到反映,不会因为总体上用得少在与高频用户的对比当中被笼统归为一个低频用户的类。同时IDF也让一些小众功能有更大的权重,更容易在聚类中突出小众偏好。
e) 聚类结果
通过这样的特征改造,再用K-Means算法进行聚类,得出的结果就比较符合分析目标了,从大盘数据中,我们找到了在QQ上经常删除消息的中学生,狂刷附近的人而又很少聊天的寂寞男,把QQ当成新闻客户端的大城市青年,很少聊天却常常访问好友页面的默默关注者,并且初略估计出了各个群体的大小,行为特征和背景特征。并在此基础上结合用户研究数据去探索产品改进的建议。
总结
用户分群对于用户数据研究领域最大的改变,在于打破数据孤岛并真实了解用户。分析某个指标数字背后的用户具备哪些特征(他们的人群属性、行为特点等),进而发现产品问题背后的原因,并从中发现产品有效改进提升的机会或方向。
在进行聚类分析时,特征的选择和准备非常重要: 1. 合适的变量在各个样本之类需要有明显差异;2.变量之间不能有强相关关系,否则需要用PCA等方法先进行降维;3.需要根据数据本身的特点和业务特性对数据进行变换(如标准化,取对数等)
而聚类算法的选择则需要结合数据特点(是否有变量,离群值,数据量,是否成簇状),以及计算速度(探索性分析往往需要较快的计算速度),精确度(能否精确识别出群落)等方面去选择合适的算法。对算法中的参数,例如K-Means当中的类别数K,则需要结合技术指标和业务背景,选取逻辑上说得通的分类方案。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)