利用K-Means聚類進行航空公司客戶價值分析知識分享_第1頁
利用K-Means聚類進行航空公司客戶價值分析知識分享_第2頁
利用K-Means聚類進行航空公司客戶價值分析知識分享_第3頁
利用K-Means聚類進行航空公司客戶價值分析知識分享_第4頁
利用K-Means聚類進行航空公司客戶價值分析知識分享_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、利用 K-Means 聚類進行航空公司客戶價值分析1.背景與挖掘目標 1.1 背景航空公司業(yè)務(wù)競爭激烈,從 產(chǎn)品中心轉(zhuǎn)化為客戶中心。針對不同類型客戶,進行精準營 銷,實現(xiàn)利潤最大化。建立客戶價值評估模型,進行客戶分 類,是解決問題的辦法 1.2 挖掘目標借助航空公司客戶數(shù)據(jù), 對客戶進行分類。對不同的客戶類別進行特征分析,比較不 同類客戶的客戶價值對不同價值的客戶類別提供個性化服 務(wù),制定相應(yīng)的營銷策略。詳情數(shù)據(jù)見數(shù)據(jù)集內(nèi)容中的 air_data.csv 和客戶信息屬性說明 2.分析方法與過程 2.1 分析 方法首先,明確目標是客戶價值識別。識別客戶價值,應(yīng)用 最廣泛的模型是三個指標(消費時間

2、間隔(Recency) ,消費頻率(Frequency),消費金額(Monetary)以上指標簡稱 RFM 模型,作用是識別高價值的客戶消費金額,一般表示一段時 間內(nèi),消費的總額。但是,因為航空票價收到距離和艙位等 級的影響,同樣金額對航空公司價值不同。因此,需要修改 指標。選定變量,艙位因素 =艙位所對應(yīng)的折扣系數(shù)的平均 值=。,距離因素=一定時間內(nèi)積累的飛行里程 =M。再考慮到, 航空公司的會員系統(tǒng),用戶的入會時間長短能在一定程度上 影響客戶價值,所以增加指標L=入會時間長度=客戶關(guān)系長度總共確定了五個指標, 消費時間間隔R,客戶關(guān)系長度L, 消費頻率F,飛行里程M和折扣系數(shù)的平均值 C以

3、上指標,作為航空公司識別客戶價值指標,記為 LRFMC 模型如果采 用傳統(tǒng)的 RFM 模型,如下圖。它是依據(jù),各個屬性的平均 值進行劃分,但是,細分的客戶群太多,精準營銷的成本太 高。綜上,這次案例,采用聚類的辦法進行識別客戶價值,以 LRFMC 模型為基礎(chǔ)本案例,總體流程如下圖2.2 挖掘步驟從航空公司,選擇性抽取與新增數(shù)據(jù)抽取,形 成歷史數(shù)據(jù)和增量數(shù)據(jù)對步驟一的兩個數(shù)據(jù),進行數(shù)據(jù)探索 性分析和預(yù)處理,主要有缺失值與異常值的分析處理,屬性 規(guī)約、清洗和變換利用步驟 2 中的已處理數(shù)據(jù)作為建模數(shù)據(jù), 基于旅客價值的 LRFMC 模型進行客戶分群,對各個客戶群 再進行特征分析,識別有價值客戶。針

4、對模型結(jié)果得到不同 價值的客戶, 采用不同的營銷手段, 指定定制化的營銷服務(wù), 或者針對性的優(yōu)惠與關(guān)懷。 (重點維護老客戶) 2.3 數(shù)據(jù)抽取 選取, 2014-03-31 為結(jié)束時間,選取寬度為兩年的時間段, 作為觀測窗口,抽取觀測窗口內(nèi)所有客戶的詳細數(shù)據(jù),形成 歷史數(shù)據(jù)對于后續(xù)新增的客戶信息,采用目前的時間作為重 點,形成新增數(shù)據(jù) 2.4 探索性分析本案例的探索分析,主要 對數(shù)據(jù)進行缺失值和異常值分析。發(fā)現(xiàn),存在票價為控制, 折扣率為 0,飛行公里數(shù)為 0。票價為空值,可能是不存在 飛行記錄, 其他空值可能是, 飛機票來自于積分兌換等渠道, 查找每列屬性觀測值中空值的個數(shù)、最大值、最小值的

5、代碼如下。 import pandas as pddatafile= r'/home/kesci/input/date27730/air_data.csv' # 航空原始 數(shù)據(jù) ,第一行為屬性標簽resultfile = r'/home/kesci/work/test.xls' # 數(shù)據(jù)探索結(jié)果表 data = pd.read_csv(datafile, encoding = 'utf-8') # 讀取原始數(shù) 據(jù),指定 UTF-8 編碼(需要用文本編輯器將數(shù)據(jù)裝換為 UTF-8 編碼)explore = data.describe(percent

6、iles = , include = 'all').T # 包括 對數(shù)據(jù)的基本描述, percentiles 參數(shù)是指定計算多少的分位 數(shù)表(如 1/4 分位數(shù)、中位數(shù)等) ;T 是轉(zhuǎn)置,轉(zhuǎn)置后更方便 查閱 print(explore) explore'null' = len(data)-explore'count' #describe() 函數(shù)自動 計算非空值數(shù),需要手動計算空值數(shù) explore = explore'null', 'max', 'min'explore.columns = u&#

7、39;空值數(shù)',u'最大值',u'最小值'#表頭重命 名print(' 以下是處理后數(shù)據(jù) ')print(explore) '''這里只選取部分探索結(jié)果。describe。函數(shù)自動計算的字段有count (非空值數(shù))、unique(唯一值數(shù))、top (頻數(shù)最高者)、freq (最高頻數(shù))、mean(平均值)、std (方差)、min (最小值)、50% (中位數(shù))、max (最大值)''' 以下是處理前數(shù)據(jù)freqmeanstdMEMBER_NO62988NaNNaNNaN31494.51

8、8183.2FFP_DATE629883068 2011/01/13184NaNNaNFIRST_FLIGHT_DATE6298834062013/02/1696NaNNaNGENDER629852男 48134NaNNaNFFP_TIER62988NaNNaNNaN 4.102160.373856WORK_CITY607193310廣州 9385NaNNaNWORK_PROVINCE597401185廣東 17507NaNNaNcount uniquetopWORK_COUNTRY62962118 以下是處理后數(shù)據(jù)空值數(shù)最大值最小值MEMBER_NO0629881FFP_DATE0NaNNa

9、NFIRST_FLIGHT_DATE0NaNNaNGENDER3NaNNaNFFP_TIER064WORK_CITY2269NaNNaNWORK_PROVINCE3248NaNNaNWORK_COUNTRY26NaNNaNAGE4201106LOAD_TIME0NaNNaNFLIGHT_COUNT02132BP_SUM05053080CN 57748NaNNaN2.3 數(shù)據(jù)預(yù)處理數(shù)據(jù)清洗丟棄票價為空記錄丟棄票價為0、平均折扣率不為 0、總飛行公里數(shù)大于 0的記錄 import pandas as pddatafile= '/home/kesci/input/date27730/air_

10、data.csv' # 航空原始 數(shù)據(jù) ,第一行為屬性標簽cleanedfile = '' # 數(shù)據(jù)清洗后保存的文件data = pd.read_csv(datafile,encoding='utf-8') # 讀取原始數(shù)據(jù), 指定 UTF-8 編碼(需要用文本編輯器將數(shù)據(jù)裝換為 UTF-8 編碼)data = datadata'SUM_YR_1'.notnull() & data'SUM_YR_2'.notnull() # 票價非空值才保留 #只保留票價非零的,或者平均折扣率與總飛行公里數(shù)同時 為 0 的

11、記錄。index1 = data'SUM_YR_1' != 0index2 = data'SUM_YR_2' != 0index3 = (data'SEG_KM_SUM' = 0) &(data'avg_discount' = 0) # 該規(guī)則是“與” ,書上給的代碼無 法正常運行,修改 '*' 為 '&'data = dataindex1 | index2 | index3 # 該規(guī)則是“或” print(data)# data.to_excel(cleanedfi

12、le) # 導出結(jié)果 以下是處理 后數(shù)據(jù)MEMBER_NO FFP_DATEFIRST_FLIGHT_DATE GENDER FFP_TIER 0549932006/11/022008/12/24男61280652007/02/192007/08/03男62551062007/02/012007/08/30男63211892008/08/222008/08/23男54395462009/04/102009/04/15男65569722008/02/102009/09/29男66449242006/03/222006/03/29男67226312010/04/092010/04/09女68321

13、972011/06/072011/07/01男59316452010/07/052010/07/05女6屬性規(guī)約原始數(shù)據(jù)中屬性太多,根據(jù)航空公司客戶價值LRFMC 模型,選擇與模型相關(guān)的六個屬性。刪除其他無用 屬性,如會員卡號等等 def reduction_data(data):data = data'LOAD_TIME', 'FFP_DATE','LAST_TO_END', 'FLIGHT_COUNT', 'SEG_KM_SUM', 'avg_discount'# data'L'

14、=pd.datetime(data'LOAD_TIME')-pd.datetime(data'F FP_DATE')# data'L'=int(parse(data'LOAD_TIME')-parse(data'FFP_AD TE').days)/30)d_ffp = pd.to_datetime(data'FFP_DATE') d_load = pd.to_datetime(data'LOAD_TIME') res = d_load - d_ffp data2=data.copy(

15、)data2'L' = res.map(lambda x: x / np.timedelta64(30 * 2460, 'm')data2'R' = data'LAST_TO_END'data2'F' = data'FLIGHT_COUNT'data2'M' = data'SEG_KM_SUM' data2'C' = data'avg_discount' data3 = data2'L', 'R', &#

16、39;F', 'M', 'C' return data3data3=reduction_data(data)print(data3)以下是以上代碼處理后數(shù)據(jù)LRFMC090.20000012105807170.961639186.56666771402936781.252314287.166667111352837121.254676368.23333397232813361.090870460.53333351523099280.970658574.70000079922945850.967692697.70000011012870420.965347

17、748.4000003732872300.962070834.2666676563214890.828478數(shù)據(jù)變換意思是,將原始數(shù)據(jù)轉(zhuǎn)換成“適當”的格式,用來適應(yīng)算法和分析等等的需要。本案例,主要采用數(shù)據(jù)變換的 方式為屬性構(gòu)造和數(shù)據(jù)標準化3.需要構(gòu)造 LRFMC 的五個指標 L=LOAD_TIME-FFP_DATE( 會員入會時間距觀測窗口結(jié) 束的月數(shù) =觀測窗口的結(jié)束時間 -入會時間(單位: 月)R=LAST_TO_END (客戶最近一次乘坐公司距觀測窗口 結(jié)束的月數(shù) =最后一次。) F=FLIGHT_COUNT( 觀測窗口內(nèi) 的飛行次數(shù) )M=SEG_KM_SUM( 觀測窗口的總飛行里程

18、)C=AVG_DISCOUNT(平均折扣率)def zscore_data(data):data = (data - data.mean(axis=0) / data.std(axis=0)data.columns = 'Z' + i for i in data.columns return datadata4 = zscore_data(data3)data4以下是以上代碼處理后數(shù)據(jù)ZLZRZFZMZC0 1.435707-0.94494814.03401626.7611541.2955401 1.307152-0.9118949.07321313.1268642.86817

19、62 1.328381-0.8898598.71886912.6534812.8809503 0.658476-0.4160980.78158512.5406221.9947144 0.386032-0.9229129.92363613.8987361.3443355 0.887281-0.5152575.67151913.1699471.328291模型構(gòu)建 1.客戶聚類利用 K-Means 聚類算法對客戶數(shù)據(jù)進行 客戶分群, 聚成五類 (根據(jù)業(yè)務(wù)理解和需要, 分析與討論后, 確定客戶類別數(shù)量)代碼如下 inputfile = r'/home/kesci/input/date2773

20、0/zscoreddata.xls' # 待聚類的數(shù)據(jù) 文件k = 5# 需要進行的聚類類別數(shù)#讀取數(shù)據(jù)并進行聚類分析data = pd.read_excel(inputfile) # 讀取數(shù)據(jù) #調(diào)用 k-means 算法,進行聚類分析 kmodel = KMeans(n_clusters = k, n_jobs = 4) #n_jobs 是并行 數(shù),一般等于 CPU 數(shù)較好 kmodel.fit(data) # 訓練模型r1 = pd.Series(kmodel.labels_).value_counts()r2 = pd.DataFrame(kmodel.cluster_cent

21、ers_)r = pd.concat(r2, r1, axis=1)r.columns = list(data.columns) + ' 類別數(shù)目 '# print(r)# r.to_excel(classoutfile,index=False) r = pd.concat(data, pd.Series(kmodel.labels_, index=data.index), axis=1)r.columns = list(data.columns) + ' 聚類類別 'print(kmodel.cluster_centers_)print(kmodel.labe

22、ls_)r-0.70078704 -0.41513666 -0.1607619 -0.16049688 -0.25665898-0.31411607 1.68662534 -0.57386257 -0.53661609 -0.17243195 0.48347647 -0.79941777 2.48236495 2.42356419 0.30943042 1.16033496 -0.37744106 -0.0870043 -0.09499704 -0.15836889 0.05165705 -0.00258448 -0.23089344 -0.23513858 2.177750563 3 3 .

23、 3 3 3ZLZRZFZMZC聚類類別01.6898820.140299-0.6357880.068794-0.337186 311.689882-0.3224420.8524530.843848-0.553613 321.681743-0.487707-0.2105760.158569-1.094680 33 1.534185-0.7851840.0020300.273091-1.148787 34 0.890167-0.426559-0.635788-0.6851701.231909 45 -0.232618-0.690983-0.635788-0.603898-0.391293 06

24、-0.4969491.996225-0.706656-0.661752-1.311107 1就剩下最后一步,畫圖: def density_plot(data): plt.rcParams'font.sans-serif'='SimHei' plt.rcParams'axes.unicode_minus'=Falsep=data.plot(kind='kde',linewidth=2,subplots=True,sharex=False )pi.set_ylabel(' 密度 ') for i in range(5

25、)pi.set_title(' 客戶群 %d' %i) for i in range(5) plt.legend()plt.show() return pltdensity_plot(data4)clu = kmodel.cluster_centers_x = 1,2,3,4,5colors = 'red','green','yellow','blue','black' for i in range(5):plt.plot(x,clui,label='clustre'+str(i),

26、linewidth=6-i,color=colorsi,marker='o') plt.xlabel('L R F M C')plt.ylabel('values')plt.show()客戶群1: red,客戶群2: green,客戶群3: yellow,客戶 群4: blue,客戶群5: black客戶關(guān)系長度L,消費時間間 隔R,消費頻率F,飛行里程M,折扣系數(shù)的平均值 Co 橫坐標上,總共有五個節(jié)點,按順序?qū)?yīng) LRFMC 。 對應(yīng)節(jié)點上的客戶群的屬性值,代表該客戶群的該屬性的程 度。2客戶價值分析我們重點關(guān)注的是L , F, M,從圖中可以看到:1 、客戶群 4blue 的 F,M 很高, L 也不低,可以看做是重要 保持的客

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論