聚类分析是一类将研究对象进行分类的统计方法。
思路:这一类方法的共同特点是:事先不知道类别的个数与结构;据以进行分析的数据是对象之间的相似性或相异性的数据。将这些相似(相异)性数据看成是对象之间的“距离”远近的一种度量,将距离近的对象归入一类,不同类之间的对象距离较远。
作用:聚类分析作为一个独立的分析工具,用于了解数据的分布;作为其它算法的一个数据预处理步骤。
今天分享的典型的聚类分析方法-- K-Means聚类;
K-Means算法是典型的基于距离的聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。K-Means聚类算法中,一般需要度量样本之间的距离、样本与簇(一个数据对象的集合,在同一个类中,对象之间具有相似性;不同类的对象之间是相异的)之间的距离以及簇与簇之间的距离。
K-Means算法过程
Step1:从N个样本数据中随机选取K(k <N)个对象作为初始的聚类中心;
Step2:分别计算每个样本到各个聚类中心的距离,将对象分配到距离最近的聚类中;
Step3:所有对象分配完成后,重新计算K个聚类的中心;
Step4:与前一次计算得到的K个聚类中心比较,如果聚类中心发生变化,转step2,否则转step5;
Step5:当质心不发生变化时停止并输出聚类结果。
算法的关键点在于对数据相似性的度量(计算距离)。因为数据类型的不同,处理方法有所不同。数据类型包括:区间标度变量;二元变量;标称型;序数型;下面我们一一进行阐述;
区间标度变量:
要先对各属性值进行零-均值规范,再进行距离的计算。
明考斯基距离:
其中,i = (xi1, xi2, …, xip)和 j = (xj1, xj2, …, xjp)是两个p维的数据对象, q是一个正整数。当q=2时,d 就成为欧几里德距离。
二元变量
其中每个对象有p个变量,且p=a+b+c+d。
(1)如果一个二元变量的两个状态是同等价值的,具有相同的权重。即可以任取其中一种状态编码为1或者0,采用简单匹配系数来评价两个对象之间的距离。
(2)如果变量的两个状态不是同样重要的,则称该变量是不对称的。根据惯例,将比较重要通常也是出现概率比较小的状态编码为1,将另一中状态编码为0。对于非对称的二元变量,采用Jaccard系数来评价两个对象之间的距离。
标称变量:标称变量是二元变量的推广,它可以具有多于两个的状态,比如 变量map_color可以有 red, yellow, blue, green四种状态。可以用简单匹配方法:m 是匹配的数目, p 是全部变量的数目。
序数型变量:通过变换可映射到0到1之间,进行区间标度变量的方法进行计算距离;
因为上面的理论铺垫,相信大家对软件实现的理解更快。也就是说,可以把jpg理解成gif的效果。
单个业务场景的数据分析过程,数据分析周期:需求→数据处理→数据分析→数据报告→结论→沟通→数据落地→再优化 。其中,不同颜色代表不同的数据过程,圆圈越大重要性越高。这里,只是对数据分析部分进行分享。
首先,交代一下业务背景,某航空公司为了降低旅客流失、提升竞争力,通过建立合理的客户价值评估模型,对客户进行分群,分析比较不同客户群的客户价值,并制定相应的营销策略,对不同的客户群提供个性化的客户服务。
此案例的目标是客户价值识别,识别客户价值应用最广泛的模型是RFM模型
(最近消费时间间隔Recency、消费频率Frequency、消费金额Monetary)。但在具体业务场景中,消费R,F,M均受到其他相关因素的影响。假定数据筛选去噪以及标准化等处理均已完成,模型衍生为 LRFMC模型。
为了进一步加深印象,我们将抽象的数据分析周期具象为下图。
R语言实现过程
整理得:
进一步整理(例:客户群1,F与M属性大,R属性小,但R表示的是时间差)
此模型采用历史数据进行建模,随时间变化,观测窗口也在变换。因此,对于新增客户详细信息,考虑业务的实际情况,该模型建议每一个月运行一次,对其新增客户信息通过聚类中心进行判断,同时对本次新增客户的特征进行分析。如果增量数据的实际情况与判断结果差异大,需要业务部门重点关注,查看变化大的原因以及确认模型的稳定性。
对于各个群体的不同特征,给予针对性的营销策略(略)