用户细分-价格敏感度

一、分析目标

将加油站客户进行细分,了解不同群体用户的消费习惯和特征,针对不同群体用户进行精准营销。


二、分析方法

无监督学习-聚类分析

聚类分析:顾名思义是一种分类的多元统计分析方法。按照个体或样品(individuals, objects or subjects)的特征将它们分类,使同一类别内的个体具有尽可能高的同质性(homogeneity),而类别之间则应具有尽可能高的异质性(heterogeneity)。

用户细分总是和聚类分析关联在一起。用户细分的关键问题是找出顾客的特征,一般可从顾客自然特征和消费行为入手。可以用单一变量进行划段分组,比如,以消费频率变量细分,即将该变量划分为几个段,高频客户、中频客户、低频客户;还可以用多个变量交叉分组,比如用性别和收入两个变量,进行交叉细分。事实是,我们总是希望考虑多方面特征进行聚类,这样基于多方面综合特征的客户细分比单个特征的细分更有意义。


常用的聚类分析算法:K-Means

算法步骤:

  1. 分配:初步指定聚类中心,将各个数据点分配至距离最近的聚类中;
  2. 优化:移动聚类中心,使得数据点到聚类中心的距离总和最小(有n个特征时,K-Means计算两点在欧几里得空间下的距离——数学空间可以被扩展来应用于任何有限维度,而这种空间叫做n维欧几里得空间);
  3. 迭代直至聚类中心产生最优结果。


Python - scikit-learn 参数设置:

  1. n_clusters = 8 最重要的参数,确定将数据分为多少类,可能随时进行调整;
  2. max_iter = 300 确定进行多少次算法迭代;
  3. n_init = 10 算法初始化的次数,即重新开始聚类,参考爬山原理,聚类结果非常依赖初始聚类中心的位置,因为第一次指定的聚类中心是随机的,很大程度上会影响聚类结果。


算法局限性:

受到初始聚类中心的影响,可能形成局部最小值,造成一种糟糕的聚类结果。


其他聚类分析算法:

1. SLC 单连锁聚类

算法步骤:
  1. 把每一个数据点看做一个聚类,所以初始聚类数量为数据个数n;
  2. 定义两个聚类之间的距离为两个聚类中最接近的两个点的距离;
  3. 将距离最近的两个聚类合并为一个大的聚类;
  4. 重复合并n-k次,k为最终形成的聚类数量,k是一开始需要输入的变量。
优势:
  1. 具有确定性,总会得到相同的结果;
  2. 运行时间短。


2. 软聚类

允许数据点被共享。

3. 其他

三、数据处理

假设

  1. 为简化问题,油型号不考虑,假设用户购买的是同种成品油


获取业务数据

由于缺少真实数据集,这里模拟用户在加油站的消费记录,记录字段包括:

{ 消费记录ID、消费时间、用户ID、用户昵称、加油单价、加油升数、是否参加活动、是否在便利店购物、便利店购物消费金额、总金额、活动优惠金额、实际支付金额、活动补贴率、储值卡余额 }


特征选择

1、剔除与聚类无关的特征,如消费记录ID、消费时间、用户昵称、加油升数、便利店购物消费金额、储值卡余额;

2、计算出其他有价值的变量,最终确定用于聚类的特征包括:

  • 同一ID用户加油单价均值
  • 参加活动占比(该用户参加活动的记录占其总记录的比率);
  • 便利店购物次数占比(该用户在加油站便利店购物次数占总记录的比率);
  • 补贴率均值(活动优惠金额/总金额);

3、由于缺少真实数据集,这里用随机数方法随机生成以上数据;

4、查看各个特征的描述统计量,剔除异常值;

5、分析各个特征间是否有强线性相关性,如有需要考虑衍生出新特征。


注:避免维数灾难

所需数据量会根据特征数量以指数速度增长,所以特征越少越好,需要我们简化问题,利用算法从一堆特征中选择真正对我们问题有帮助的特征,可以使用以下两种方法进行特征选择:

  1. 过滤(如决策树):具备一系列的特征输入,通过某种可以将标准最大化的算法运行这些输入,然后会输出较少的特征,将这些特征传递给分类算法,即流程先对特征进行过滤,再传递给学习算法,缺点在于缺少反馈,就将特征移除了;优势在于相对封装方法,运行较快;
  2. 封装:即对特征的搜索是围绕着学习算法展开的,特征是否移除的标准是在学习器里去判断的,运行很慢,每次尝试针对特定的特征子集运算时,都必须运行学习算法。


特征缩放/数据标准化

有的特征取值的跨度大,分析前要对数据进行标准化处理,即特征缩放。比如这里需要对加油单价均值进行标准化,可以采用z-score、最大最小规范化等方法。

四、数据分析

查看聚类结果

1、初始类中心

2、迭代至各个中心的变化趋于0

3、最终聚类中心

4、查看聚类数据

结论-描述类别特征

可以根据用户历史消费记录将用户分为两类:

第1类用户平均加油单价低、参加活动占比高、补贴率均值高、很少在便利店购物,属于价格敏感度高的用户,在964个用户中有337个这样的用户;

另一类用户与之相反,价格敏感度较低。