K-means聚类:对某健身APP的用户价值分析

一、 背景与挖掘目标

1.近期运营部门要开展社群运营计划,按不同的用户价值导入不同社群,采用分层运营策略开展社群运营,但平台目前还没有成熟的用户价值评估模型;

2.针对不同价值的用户施展不同目的的精准营销手段,方可进一步提高用户终身价值;

3.建立用户价值评估模型,进行用户群分层,是解决问题的关键。

二、分析方法与过程

分析方法

1.明确目标:识别用户价值并进行用户群分层。

2.采用RFM模型,识别用户价值
R:消费间隔,距离最近一次消费时间间隔
F:消费频率,一段时间内消费的次数
M:消费(充值)金额,一段时间内消费的总额
另加入两个指标,
L:用户关系长度,即用户注册至今的时长(天数)
T:运动时长,即用户使用健身舱的总时长(分钟数)
以上指标,作为平台的用户价值指标,记为“LTRFM”模型

3.采用K-means聚类的方法,以L、T、R、F、M五个指标为基础,识别用户价值。

4.总体流程如下

数据源抽取相关历史数据
数据清洗/属性规约/数据变换
建模数据预处理
建模/模型分析
用户价值排名
模型应用

挖掘步骤

1.从数据源进行选择性数据抽取(订单记录表、用户基本信息表、充值记录表等)
2.对步骤1的数据进行探索性分析及预处理(主要是-按需连接各表、缺失值异常值的清洗、数据属性规约等数据处理)
3.利用步骤2的数据建模,基于平台用户价值的LTRFM模型进行用户分群,对各用户群进行特征分析,识别有价值用户。

数据提取及预处理

1.以2020年10月11日为结束时间,选取宽度为2年的时间段(2018年10月12日~2020年10月11日)作为观测窗口,抽取观测窗口内的用户订单记录数据、用户基本信息数据、用户充值记录数据。

订单记录表
K-means聚类:对某健身APP的用户价值分析_第1张图片

用户信息表K-means聚类:对某健身APP的用户价值分析_第2张图片
充值记录表K-means聚类:对某健身APP的用户价值分析_第3张图片

2.将步骤1的数据表按需进行聚合、连接处理,生成“LTRFM表”,字段为:userid(用户id)、L(用户关系长度/天)、T(运动总时长/分钟)、R(消费间隔时长/天)、F(消费次数)、M(消费金额/元)

或用python进行处理,每个用户的 LTRFM值,如下表:
K-means聚类:对某健身APP的用户价值分析_第4张图片
描述性分析结果:

import pandas as pd

def describe(filename):
    dt = pd.read_csv(filename)
    explore = dt.describe(include = 'all').T
    print(explore)
    
describe('/Users/gg/Desktop/pyfile/数据分析/LTRFM.csv')
#输出数据描述性统计分析结果

在这里插入图片描述
3.观察上图结果,五个指标的量级差异较大,需要进行标准化处理,消除量级影响

#定义标准化处理函数:Zscore
def Zscore(data):
    data = (data - data.mean()) / data.std()
    data.columns = ['Z' + i for i in data.columns]
    return data

def Zscore_LTRFM_list(filename):
    datafile = pd.read_csv(filename)   
    datafile = datafile.drop(['userid'], axis = 1)
    return Zscore(datafile).T
    
    print(Zscore_LTRFM_list('/Users/gg/Desktop/pyfile/数据分析/LTRFM.csv'))
    #输出消除量级影响后的数据结果

在这里插入图片描述

构建模型

模型的构建主要包括两部分:
1、根据指标数据,对客户作聚类分群
2、结合业务对每个用户群进行特征分析,分析其用户价值,并对每个用户群进行排名

1.用户聚类
采用K-Means算法对用户进行分群,聚成4类


from sklearn.cluster import KMeans

def Kmeans(datafile):
   model = KMeans(n_clusters= 4,n_jobs= 4)#设置簇的数量、并发数
   model.fit(datafile) #模型拟合
   r1 = pd.Series(model.labels_).value_counts() #统计各个类别的数目
   r2 = pd.DataFrame(model.cluster_centers_) #找出聚类中心
   r = pd.concat([r2,r1], axis = 1) #横向连接,得到聚类中心对应类别下的用户数量
   r.columns = list(datafile.columns)+['类别数目'] #重命名表头
   
   print(r) #输出用户分群类别及数量结果

在这里插入图片描述

	#详细输出每个样本对应的类别
	r3 = pd.concat([datafile,pd.Series(model.labels_,index = datafile.index)],axis = 1) 
	#重命名表头
    r3.columns = list(datafile.columns) + ['聚类类别'] 
    #标记每个用户分群类别
    print(r3) 

K-means聚类:对某健身APP的用户价值分析_第5张图片

2.绘制用户特征雷达图
将r的数据导入WPS或Excel绘制图表,结果如下:
K-means聚类:对某健身APP的用户价值分析_第6张图片

K-means聚类:对某健身APP的用户价值分析_第7张图片

3.用户价值分析
根据雷达图显示聚类结果并结合平台业务特征进行用户价值分析:
我们重点关注的指标是:

  • R(时间间隔,最近一次消费间隔天数)
  • F(消费频率,近两年使用次数)
  • M(消费金额,近两年消费总金额)

用户群类别定义:

  • 用户群A:R属性最大,F、M属性最小,定义为低价值/已流失用户
  • 用户群B:R属性最小,F、M、T属性均最大,定位为重要保持用户
  • 用户群C:L属性与用户群B相同,F、M、T、R属性均次于用户群B,定义为重要挽留用户
  • 用户群D:L属性最小,R较大,定义为重要发展用户

每种用户群类别特征如下:

  • 重要保持用户:F(消费频次)、M(消费金额)、T(使用时长)均最大, R(最近间隔时间)最小,应将资源向该部分用户倾斜,采取分层运营策略,重点提高该类用户忠诚度和满意度。
  • 重要发展用户:L(用户关系长度)较小,F(消费频次)、M(消费金额)、T(使用时长)、R(最近间隔时间)均较低,多为新注册用户,当前用户价值虽低,但发展潜力较大,应重点促进该类用户的使用频率和时长。
  • 重要挽留用户:L(用户关系长度)、F(消费频次)、M(消费金额)、T(使用时长)均较大或中等、且R(最近间隔时间)也较大,用户价值的不确定性变高,应去积极掌握该类用户的信息,并增加平台与用户的互动频率,避免其流失。
  • 低价值/流失用户:F(消费频次)、M(消费金额)、T(使用时长)均较低,L(用户关系长度)、R(最近间隔时间)均较大,这类用户在一段时间后降低了使用频率或已经放弃使用,是低价值或已流失的用户,可以采取用户召回策略,但不建议投入过多资源。

用户群价值排名

排名 含义 用户群
1 重要保持用户 B
2 重要发展用户 D
3 重要挽留用户 C
4 低价值/已流失用户 A

三、模型应用

1.根据运营计划建立用户社群:重要保持用户群、重要发展用户群、重要挽留用户群、老用户召回群

2.不同用户社群采用不同运营策略:

  • 重要保持用户群(用户群B):专人客服解决问题、帮助用户定制健身目标计划、赠送文化周边等,增加用户体验感与忠诚度
  • 重要发展用户群(用户群D): 重点做好新手引导工作、解决使用问题,推出首次开通vip优惠等活动,增加vip转化率
  • 重要挽留用户群(用户群C):线上、线下用户调研,收集用户反馈建议,推出续费优惠活动,增加vip续卡率
  • 老用户召回群(用户群A):老用户召回短信发送,推出老用户回归礼包等。

3.根据用户特征占比,推出重点活动(此处仅说明方向):
当前重要保持用户占比仅0.5%,重要发展用户占比30.92%,应重点推出促进vip转化率的活动,并建立会员成长体系,提升重要保持用户占比。

你可能感兴趣的:(数据运营,数据分析,kmeans算法,聚类)