1. 程式人生 > >航空公司客戶價值分析

航空公司客戶價值分析

air height xls 得到 3.1 amp 識別 cluster 有客

數據集:http://pan.baidu.com/s/1clfQY6

挖掘目標

(1) 根據航空公司客戶數據對客戶進行分類。

(2) 對不同的客戶類別進行特征分析,比價不同類客戶的客戶價值。

(3) 對不同價值的客戶類別提供個性化服務,制定相應的營銷策略。

分析方法與過程

識別客戶價值應用最廣泛的模型指標:最近消費時間間隔,消費頻率,消費金額(RFM模型)

本案例考慮項目指標(LRFMC模型):

(1) 客戶關系長度L:航空公司會員時間的長短。

(2) 是消費時間間隔R

(3) 消費頻率F

(4) 飛行裏程M

(5) 折扣系數的平均值C。

觀測窗口:以過去某個時間段為結束時間,某一時間長度作為寬度,得到歷史時間範圍內的一個時間段。

LRFMC模型指標含義:

(1) L:會員入會時間距觀測窗口結束的月數。

(2) R:客戶最近一次乘坐公司飛機距離觀測窗口結束的月數。

(3) F:客戶在觀測窗口內乘坐公司飛機的次數。

(4) M:客戶在觀測窗口內累計的飛行裏程碑。

(5) C:客戶在觀測窗口內乘坐倉位所對應的折扣系數的平均值。

方法:本案例采用聚類的方法,通過對航空公司客戶價值的LRFMC模型的五個指標進行K-Means聚類,識別客戶價值。

總體流程:數據抽取->數據預處理(數據清洗(缺失值填補舍棄等),屬性規約(提取需要特征數據),數據變換(轉換適當格式))->建模->結果

代碼實踐

1. 數據抽取

以2014-03-31為結束時間,選取寬度為兩年的時間段為分析窗口,抽取觀測窗口內有乘機記錄的所有客戶的詳細數據形成歷史數據。

抽取2012-04-01至2014-03-31所有乘客的詳細數據,總共62988條,44個屬性。

2. 數據探索分析

查找每列屬性觀測值個數,最大值,最小值。完整代碼如下:

 1 # -*- coding: UTF-8 -*-
 2 #對數據進行基本的探索
 3 #返回缺失值個數以及最大值最小值
 4 
 5 import pandas as pd
 6 
 7 datafile=air_data.csv#航空原始數據,第一行為屬性標簽
 8 
 9 resultfile=
explore.xls#數據探索結果表 10 11 data=pd.read_csv(datafile,encoding=utf-8) #讀取原始數據,指定UTF-8編碼(需要用文本編輯器將數據轉換為UTF-8) 12 explore=data.describe(percentiles=[],include=all).T #.T對數據進行轉置,方便查閱,percentiles是指定計算多少的分位數(如1/4分位數,中位數) 13 ‘‘‘describe()函數自動計算字段count(非空值),unique(唯一值),top(頻數最高者),freq(最高頻數),std(方差),min(最小值), 14 50%(中位數),max(最大值)‘‘‘ 15 16 explore[null]=len(data)-explore[count] #describe()函數自動計算非空值,需要手動計算空值,每個屬性空值數 17 explore=explore[[null,max,min]] 18 explore.columns=[u空值數,u最大值,u最小值] #表頭重命名 19 20 explore.to_excel(resultfile) #導出結果

效果如下:

技術分享

3.數據預處理

數據清洗,屬性規約,數據變換

3.1數據清洗

通過數據探索分析,發現數據中存在缺失值,由於原始數據量大,這類數據量少,對其進行丟棄處理。

(1)丟棄票價為空的記錄。

(2)丟棄票價為0、平均折扣率不為0、總飛行公裏數等於0的記錄。

滿足清洗條件的一行數據全部丟棄,使用Pandas對滿足清洗條件的數據進行丟棄。

完整代碼如下:

 1 # -*- coding: UTF-8 -*-
 2 # 數據清洗,過濾掉不符合規則的數據
 3 
 4 import pandas as pd
 5 
 6 datafile = air_data.csv  # 航空原始數據,第一行為屬性標簽
 7 cleanedfile = data_cleaned.scv  # 數據清洗後保存文件
 8 
 9 data = pd.read_csv(datafile, encoding=utf-8)  # 讀取原始數據,指定UTF-8編碼
10 data = data[data[SUM_YR_1].notnull() *
11             data[SUM_YR_2].notnull()]  # 票價非空值才保留
12 
13 # 只保留票價非零的,或者平均折扣率與總飛行公裏數同時為0的記錄
14 index1 = data[SUM_YR_1] != 0  # 屬性下面返回True或者False
15 index2 = data[SUM_YR_2] != 0
16 index3 = (data[SEG_KM_SUM] == 0) & (data[avg_discount] == 0)  # 該規則是與‘
17 
18 data = data[index1 | index2 | index3]
19 
20 data.to_csv(cleanedfile, encoding=utf-8)  # 導出實驗結果

3.2屬性規約
根據我們建立的LRFMC模型,提取這五個特征,刪除語氣不相關的屬性。
3.3數據變換

將數據變換成‘適當的’格式。通過數據變換來構造這個五個特征。

計算方式如下:

(1) L=LOAD_TIME-FFP_DATE

會員入會時間距觀測窗口結束的月數=觀測窗口的結束時間-入會時間[單位:月]

(2) R=LAST_TO_END

客戶最近一次乘坐公司飛機距觀測窗口結束的月數=最後一次乘機時間至觀測窗口末端時長[單位:月]

(3)F=FLIGHT_COUNT

客戶在觀測窗口內乘坐公司飛機的次數=觀測窗口飛行次數[單位:次]

(4)M=SEG_KM_SUM

客戶在觀測時間內在公司累計的飛行裏程=觀測窗口的總飛行裏數[單位:公裏]

(5)C=AVG_DISCOUNT

客戶在觀測時間內乘坐艙位所對應的折扣系數的平均值=平均折扣率[單位:無]

提取5個特征後生成文件:zscoredata.xls

技術分享

技術分享

發現5個特征取值範圍差異較大,現對數據進行標準化

 1 # -*- coding: UTF-8 -*-
 2 # 對數據進行基本的探索
 3 # 返回缺失值個數以及最大值最小值
 4 
 5 import pandas as pd
 6 
 7 datafile = zscoredata.xls  # 航空原始數據,第一行為屬性標簽
 8 zscoredfile = zscoreddata.xls  # 標準化後的數據儲存路徑
 9 
10 # 標準化處理
11 data = pd.read_excel(datafile)
12 data = (data - data.mean(axis=0)) / (data.std(axis=0))  # 標準化變換
13 
14 data.columns = [Z + i for i in data.columns]  # 表頭重命名
15 
16 data.to_excel(zscoredfile, index=False)  # 寫入數據,False不要序列

技術分享

技術分享

4.構建模型

客戶價值分析模型包括兩個:

(1) 根據5個特征對客戶進行聚類分群。

(2) 對每個客戶群進行特征分析,分析客戶價值,並對每個客戶進行排名。

完整代碼如下:

 1 #-*- coding: utf-8 -*-
 2 #K-Means聚類算法
 3 
 4 import pandas as pd
 5 from sklearn.cluster import KMeans #導入K均值聚類算法
 6 
 7 inputfile = zscoreddata.xls #待聚類的數據文件
 8 k = 5                       #需要進行的聚類類別數
 9 
10 #讀取數據並進行聚類分析
11 data = pd.read_excel(inputfile) #讀取數據
12 
13 #調用k-means算法,進行聚類分析
14 if __name__==__main__:
15     kmodel = KMeans(n_clusters = k, n_jobs = 8) #n_jobs是並行數,一般等於CPU數較好
16     kmodel.fit(data) #訓練模型
17 
18     kmodel.cluster_centers_ #查看聚類中心
19     kmodel.labels_ #查看各樣本對應的類別

客戶價值分析:

根據聚類結果構造客戶群特征分析圖。

根據特征值大小總結出每個群體優勢特征和弱勢特征,將客戶群分為四類:

     a重要保持客戶:平均折扣率高,乘坐次數或裏程高,最近坐過本公司航班。

     b重要發展客戶:平均折扣率較高,乘坐次數和裏程較低。

     c重要挽留客戶:平均折扣率,乘坐次數或者裏程較高,較長時間沒坐本公司航班。

     d一般與低價值客戶:折扣率低,較長時間未做本公司航班,乘坐次數或裏程較低,入會時長短。

航空公司客戶價值分析