1. 背景和目标
1.1 背景
- 航空公司竞争压力大,企业营销焦点由产品中心转为客户中心
- 针对不同类型的用户,进行精准营销,实现利润最大化
- 解决问题的关键是建立合理的客户价值评估模型,对客户进行分类,有针对性地进行营销。
1.2 目标
- 利用已有的航空数据,进行客户分类
- 就分类结果对不同类别的客户进行特征分析,比较不同类客户的客户价值
- 对不同价值的客户类别提供个性化服务,制定相应的营销策略
2. 技术和分析方法
2.1 RFM模型
RFM模型属于客户关系管理(CRM)的一种。该模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱3项指标来描述该客户的价值状况。
客户细分模型是通过三个指标:
-
最近消费时间间隔(Recency):上一次购买的时候。理论上,上一次消费时间越近的顾客应该是比较好的顾客,对提供即时的商品或是服务也最有可能会有反应。
-
消费频率(Frequency):顾客在限定的期间内所购买的次数。
-
消费金额(Monetary)
根据三个指标,在三个维度上进行分类,得到8组用户
2.2 K-means聚类法
k-means算法知识
sk-learn官网的K-means实现
3. 数据挖掘实现
3.1 引入相关库
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
import sklearn.datasets as ds
import matplotlib.colors
from sklearn.cluster import KMeans
%matplotlib inline
#设置属性,防止中文乱码
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
3.2 读取数据
pd.read_csv() #导入数据
data.head() #查看前几行
data.shape #查看数据分布(行,列)
3.3 数据探索分析
data.info() #查看每个column特征的非空数据量、数据类型
data.describe().T # 查看每个数值类特征的总数量(包括空值)以及五值分布:平均值、最大值、最小值、标准差、四分位数
data.isnull().sum().sort_values(ascending = False) #查看缺失值情况
3.4 数据预处理
- 数据清洗:处理异常值和缺失值
- 特征提取:仅保留相关特征,删除不相关、弱相关或冗余特征
- 标准化处理
#数据清洗部分
# 丢弃票价为空的记录
data = data[data['SUM_YR_1'].notnull()&data['SUM_YR_2'].notnull()]
#保留票价非零或平均折扣率为零的值
temp1 = data['SUM_YR_1'] !=0
temp2 = data['SUM_YR_2'] != 0
temp3 = data['avg_discount'] == 0
data = data[temp1