点击标题下「蓝色微信名」点击设置星标第一时间送达
本文所有代码都通过运行!
我们说RFM模型由R(最近消费时间间隔)、F(消费频次)和M(消费总额)三个指标构成,通过该模型识别出高价值客户。
但该模型并不完全适合所有行业,如航空行业,直接使用M指标并不能反映客户的真实价值,因为“长途低等舱”可能没有“短途高等舱”价值高。所以得根据实际行业灵活调整RFM模型的指标。
本文就拿航空公司的数据为例,将RFM模型构建成L(入会至当前时间的间隔,反映可能的活跃时长)、R(最近消费时间距当前的间隔,反映当前的活跃状态)、F(乘机次数,反映客户的忠诚度)、M(飞行里程数,反映客户对乘机的依赖性)和C(舱位等级对应的折扣系数,侧面反映客户价值高低)5个指标。
下面就利用这5个指标进行客户价值分群的实战:
01
导入包和数据
1import pandas as pd
2import numpy as np
3from sklearn.cluster import KMeans
4import matplotlib.pyplot as plt
5#接着将数据读取到程序中,并查看每个特征属性的相关信息,以便对“脏”数据进行处理
6datafile = 'data/air_data.csv'
7data = pd.read_csv(datafile, encoding='utf-8')
8print(data.shape)
9print(data.info())
结果显示该数据集大小为(62988, 44),一共44列都无空值,不错,我们继续分析。
02
数据清洗
1#通过观测可知,数据集中存在票价为零但是飞行公里大于零的不合理值,但是所占比例较小,这里直接删去
2data = data[data["SUM_YR_1"].notnull() & data["SUM_YR_2"].notnull()]
3index1 = data["SUM_YR_1"] != 0
4index2 = data["SUM_YR_2"] != 0
5index3 = (data["SEG_KM_SUM"] == 0) & (data["avg_