儲(chǔ)文星 楊杉
摘 ?要:以不同航空公司客戶數(shù)據(jù)作為研究對(duì)象,對(duì)不同價(jià)值的航空客戶進(jìn)行畫像。采用Excel和PyCharm對(duì)不同等級(jí)會(huì)員按客戶性別、客戶年齡、各年份會(huì)員入會(huì)人數(shù)進(jìn)行畫像分析,并提取LRFMC這五個(gè)特征值進(jìn)行聚類分析,從而得到航空公司不同客戶的價(jià)值畫像。借助客戶價(jià)值畫像,航空公司可以針對(duì)不同的客戶群體進(jìn)行不同的營銷方案設(shè)計(jì)。
關(guān)鍵詞:大數(shù)據(jù);航空公司客戶;畫像研究;聚類分析
中圖分類號(hào):TP311.1 ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2021)06-0137-05
Research on Customer Value Portrait of Airlines Based on Big Data
CHU Wenxing,YANG Shan
(School of Computer and Software,Jincheng College of Sichuan University,Chengdu ?611731,China)
Abstract:Taking the customer data of different airlines as the research object,this paper draws a portrait for the aviation customers with different values. Excel and PyCharm are used to make portrait analysis on members of different grades according to customer gender,customer age and membership number in each year,and extract five characteristic values such as LRFMC for cluster analysis,so as to obtain the value portraits of different customers of airlines. With the help of customer value portraits,airlines can design different marketing schemes for different customer groups.
Keywords:big data;airline customer;portrait research;cluster analysis
0 ?引 ?言
隨著社會(huì)信息化的迅速發(fā)展,無論是數(shù)據(jù)的變化速率,還是數(shù)據(jù)的新增種類都在不斷更新,數(shù)據(jù)研究變得越來越復(fù)雜,這意味著“大數(shù)據(jù)時(shí)代”到來。如今,大數(shù)據(jù)技術(shù)逐步融入企業(yè)的發(fā)展過程中[1],并產(chǎn)生了可觀的能量和價(jià)值。
在國內(nèi)外航空市場(chǎng)競(jìng)爭(zhēng)日益激烈的背景下[2],隨著民航信息化建設(shè)推進(jìn)以及民航市場(chǎng)競(jìng)爭(zhēng)日趨激烈,怎樣改善個(gè)性化服務(wù)提高客戶滿意度是公司在體驗(yàn)經(jīng)濟(jì)時(shí)代必須面對(duì)的問題[3],航空公司開始深耕旅客價(jià)值,通過制定差異化旅客服務(wù)、提高營銷精準(zhǔn)性,不斷地提升航空公司行業(yè)競(jìng)爭(zhēng)水平。研究旅客價(jià)值的概念及旅客價(jià)值評(píng)估的經(jīng)典模型,并分類比對(duì)了民航領(lǐng)域現(xiàn)有的旅客價(jià)值模型,提出可以將旅客價(jià)值應(yīng)用于旅客細(xì)分,為航空公司優(yōu)化營銷資源分配、完善服務(wù)體系和市場(chǎng)策略、實(shí)現(xiàn)收益的高質(zhì)增長提供參考依據(jù)[4]。
1 ?研究思路
以不同航空公司提供的客戶數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行清洗、特征選取以及標(biāo)準(zhǔn)化處理后,基于傳統(tǒng)的RFM模型提出了LRFMC客戶價(jià)值評(píng)價(jià)模型,LRFMC分別對(duì)應(yīng)客戶入會(huì)時(shí)間距觀測(cè)窗口的結(jié)束的月數(shù)、最近一次乘坐公司飛機(jī)距觀測(cè)窗口的結(jié)束的月數(shù)、在觀測(cè)窗口內(nèi)乘坐飛機(jī)的次數(shù)、累計(jì)的飛行里程、客戶在觀測(cè)窗口內(nèi)乘坐艙位對(duì)應(yīng)的折扣系數(shù)的平均值,通過對(duì)比特征值的權(quán)重[5],進(jìn)行K-Means聚類分析,得出不同價(jià)值客戶分群,將得到的模型應(yīng)用于航空公司,提高其經(jīng)濟(jì)效益。
2 ?數(shù)據(jù)說明
2.1 ?數(shù)據(jù)來源
數(shù)據(jù)來源于各航空公司的后臺(tái)記錄,以2014年3月31日作為結(jié)束時(shí)間,選取寬度為兩年的時(shí)間段作為分析觀測(cè)窗口,抽取觀測(cè)窗口內(nèi)有乘機(jī)記錄的所有客戶的詳細(xì)數(shù)據(jù)形成歷史數(shù)據(jù),44個(gè)特征列,共62 988條記錄。
2.2 ?數(shù)據(jù)清洗
原始數(shù)據(jù)的規(guī)模為62 988行,44列,發(fā)現(xiàn)其中存在票價(jià)為空值,折扣率為0,飛行公里數(shù)為0的情況。票價(jià)為空值,可能是不存在飛行記錄,其他空值可能是,飛機(jī)票來自積分兌換等渠道。但其中有很多空值,對(duì)后續(xù)的數(shù)據(jù)分析無意義,所以將其進(jìn)行刪除。首先刪除票價(jià)為空的行,得到數(shù)據(jù)規(guī)模為62 299行,44列;在此基礎(chǔ)上保留票價(jià)非零,平均折扣率不為零且總飛行公里大于零的記錄,其余的刪除,最終得到數(shù)據(jù)規(guī)模為62 044行,44列。
2.3 ?數(shù)據(jù)特征選取
選取需求特征:客戶入會(huì)時(shí)間距觀測(cè)窗口的結(jié)束的月數(shù)(L)、最近一次乘坐公司飛機(jī)距觀測(cè)窗口的結(jié)束的月數(shù)(R)、在觀測(cè)窗口內(nèi)乘坐飛機(jī)的次數(shù)(F)、累計(jì)的飛行里程(M)、客戶在觀測(cè)窗口內(nèi)乘坐艙位對(duì)應(yīng)的折扣系數(shù)的平均值(C)這五個(gè)作為航空公司識(shí)別客戶價(jià)值的關(guān)鍵特征。
2.4 ?數(shù)據(jù)標(biāo)準(zhǔn)化
五個(gè)特征的取值范圍數(shù)據(jù)差異較大,為了消除數(shù)量級(jí)數(shù)據(jù)的影響,需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化,并存儲(chǔ)為新的數(shù)據(jù)表。
3 ?航空公司客戶統(tǒng)計(jì)維度特征數(shù)據(jù)可視化
3.1 ?不同性別的客戶分布畫像
對(duì)于不同性別的客戶進(jìn)行統(tǒng)計(jì)要先使用分組聚合,使用groupby對(duì)性別列進(jìn)行分組,統(tǒng)計(jì)不同性別的會(huì)員人數(shù),繪制餅圖,標(biāo)記不同性別占總?cè)藬?shù)的百分比。具體代碼實(shí)現(xiàn)為:
a=airline.groupby('GENDER').size()
aa=pd.DataFrame(a,columns=['counts'])
print(aa.index)
explod=[0.01,0.05] #設(shè)置各項(xiàng)離心n個(gè)半徑
plt.pie(aa['counts'],explode=explod,labels=['男','女'], autopct='%1.1f%%')
plt.title('不同會(huì)員等級(jí)的分布畫像')
plt.show()
由圖1可知:會(huì)員中男性占比為76.5%,女性占比23.5%。說明在航空公司的客戶中,男性客戶的比例較大。
3.2 ?不同會(huì)員等級(jí)性別的分布畫像
對(duì)于不同等級(jí)性別的客戶進(jìn)行統(tǒng)計(jì)要先使用分組聚合,使用groupby對(duì)等級(jí)、性別列進(jìn)行分組,統(tǒng)計(jì)不同等級(jí)中不同性別的會(huì)員人數(shù),男性數(shù)量用灰色條形表示,女性數(shù)量用黑色條形表示,以此來繪制不同會(huì)員等級(jí)性別的分布直方圖。具體代碼實(shí)現(xiàn)為:
b=airline[['FFP_TIER','GENDER']].groupby(['FFP_TIER','GENDER']).size()
print(b)
b0=[item[0] for item in b.index] #會(huì)員等級(jí)
b1=[item[1] for item in b.index]#會(huì)員性別
b3=pd.DataFrame({'level':b0,'gender':b1})
b=pd.DataFrame({'count':b.values},index=range(b.shape[0])) #深拷貝
final=pd.concat([b3,b],axis=1)
print(final)
l=['4級(jí)','5級(jí)','6級(jí)']
bar_width=0.2
bar_1=list(range(3))
bar_2=[i+bar_width for i in bar_1]
plt.bar(bar_1,final.loc[(final['gender']== '男'),'count'],width= bar_width,label=l,color='pink')
plt.bar(bar_2,final.loc[(final['gender']==女),'count'],width= bar_width,label=l,color='blue')
plt.xlabel('會(huì)員等級(jí)')
plt.ylabel('數(shù)量')
#位置、標(biāo)簽、標(biāo)簽旋轉(zhuǎn)的角度
plt.xticks(bar_1,l,size=15)
plt.xticks(bar_2,l,size=15)
plt.title('2000年各行業(yè)季度生產(chǎn)總值直方圖')#設(shè)置圖表標(biāo)題
plt.title('不同會(huì)員等級(jí)性別的分布畫像')
plt.show()
根據(jù)圖2可知:大多數(shù)會(huì)員的等級(jí)都是4等級(jí),男性4級(jí)會(huì)員人數(shù)高達(dá)40 000人,女性相較而言較少,只有10 000多人。在會(huì)員中,很少一部分的會(huì)員的等級(jí)為6,根據(jù)不同等級(jí)會(huì)員的人數(shù)分布,說明大多數(shù)會(huì)員其實(shí)乘坐飛機(jī)的次數(shù)都不是特別多;對(duì)于6等級(jí)的會(huì)員來說,他們乘坐飛機(jī)的次數(shù)很多,航空公司可以適當(dāng)調(diào)低票價(jià),以保證6等級(jí)的會(huì)員會(huì)堅(jiān)持坐飛機(jī),其他等級(jí)的會(huì)員可以再次乘坐飛機(jī)。
3.3 ?會(huì)員年齡的分布畫像
對(duì)于不同年齡的客戶進(jìn)行統(tǒng)計(jì)要先使用分組聚合,使用groupby對(duì)年齡列進(jìn)行分組,然后利用matplotlib模塊中的boxplot函數(shù)來繪制會(huì)員年齡分布的箱型圖。具體代碼實(shí)現(xiàn)為:
age = airline['AGE'].dropna()
age = age.astype('int64')
#繪制會(huì)員年齡分布箱型圖
fig = plt.figure(figsize=(5,10))
plt.boxplot(age, patch_artist=True, labels=['會(huì)員年齡'], boxprops={'facecolor': 'lightblue'}) #設(shè)置填充顏色
plt.title('會(huì)員年齡分布箱型圖')
#顯示y坐標(biāo)軸的底線
plt.grid(axis='y')
plt.show()
由圖3可知:會(huì)員客戶的年齡多集中在35~50歲,會(huì)員年齡上限為50左右,下限為16左右,中位數(shù)在40上下,異常值主要集中在80歲上下,且圖中含有極端值,年齡大于100歲,出于航空公司對(duì)客戶的安全考慮,一般不建議年齡超過80歲的老人乘坐飛機(jī)。所以在后續(xù)數(shù)據(jù)處理中,可以將離群值進(jìn)行刪除,以保證數(shù)據(jù)的準(zhǔn)確性和可靠性。
3.4 ?各年份會(huì)員入會(huì)人數(shù)分布畫像
對(duì)于各年份會(huì)員入會(huì)人數(shù)進(jìn)行統(tǒng)計(jì)要先使用分組聚合,使用groupby對(duì)年份列進(jìn)行分組,使用datetime庫提取入會(huì)時(shí)間中的年份,繪制直方圖。
根據(jù)圖4可知:在2004-2013年中,2004-2012年會(huì)員入會(huì)人數(shù)整體呈上升趨勢(shì),在2009年出現(xiàn)了少量下降,推測(cè)可能是因?yàn)槭墚?dāng)時(shí)的金融危機(jī)影響,客戶入會(huì)人數(shù)相較于2008年有所減少。但是隨后在2013年,會(huì)員入會(huì)人數(shù)卻出現(xiàn)陡然下降,幅度較大,推測(cè)有可能是受高鐵、動(dòng)車的快速發(fā)展的影響,國家對(duì)高鐵的大力建設(shè),導(dǎo)致相當(dāng)一部分航空公司的客戶流失。
4 ?航空公司客戶價(jià)值分群
4.1 ?構(gòu)建K-Means聚類算法
K-Means算法的思想很簡單,對(duì)于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個(gè)簇。讓簇內(nèi)的點(diǎn)盡量緊密的連在一起,而讓簇間的距離盡量的大。我們首先需要確定的是適當(dāng)?shù)腒值,也就是聚類中心數(shù),這里我們的K值選擇為5,然后實(shí)現(xiàn)客戶價(jià)值分群,進(jìn)行模型的訓(xùn)練并查看聚類中心點(diǎn)、樣本的類別標(biāo)簽文件,統(tǒng)計(jì)不同類別樣本的數(shù)目。最后我們將統(tǒng)計(jì)獲取的內(nèi)容:每個(gè)樣本對(duì)應(yīng)的類別、聚類中心對(duì)應(yīng)類別下的數(shù)目都保存到csv文件里。樣本對(duì)應(yīng)的聚類類別表、樣本對(duì)應(yīng)的類別數(shù)目表如表1、表2所示。
具體代碼實(shí)現(xiàn)為:
k=5 ?##確定聚類中心數(shù)
#構(gòu)建模型
kmeans_model=KMeans(n_clusters=k,n_jobs=4,random_state=123)
fit_kmeans=kmeans_model.fit(airline_scale) ?#模型訓(xùn)練
#print('查看聚類中心:\n',kmeans_model.labels_)#查看樣本的類別標(biāo)簽
#統(tǒng)計(jì)不同樣本的數(shù)目
r1=pd.Series(kmeans_model.labels_).value_counts()
#print('最終每個(gè)類別的數(shù)目為:\n',r1)
# #
# #詳細(xì)輸出每個(gè)樣本的類別
airline_lable=pd.concat([airline_scale,
pd.DataFrame(kmeans_model.labels_,index=airline_scale.index)],axis=1)
airline_lable.columns=list(airline_scale.columns)+['聚類類別'] ?#重命名表頭
print('詳細(xì)輸出每個(gè)樣本對(duì)應(yīng)的類別:\n',airline_lable.tail())
#詳細(xì)輸出每個(gè)樣本對(duì)應(yīng)的類別數(shù)目
cluster_centers=pd.DataFrame(kmeans_model.cluster_centers_,
columns=['ZL','ZR','ZF','ZM','ZC'])
r=pd.concat([cluster_centers,r1],axis=1) ?#橫向連接,得到聚類中心的對(duì)應(yīng)的類別
r.columns=list(cluster_centers.columns)+['類別數(shù)目']
print('詳細(xì)輸出每個(gè)樣本對(duì)應(yīng)的類別數(shù)目:\n',r)
4.2 ?聚類后不同客戶群的特征雷達(dá)圖
對(duì)聚類后的五個(gè)不同的客戶群的特征數(shù)據(jù)通過pandas進(jìn)行提取,將提取到的數(shù)據(jù)作為參數(shù)進(jìn)行雷達(dá)圖的繪制,在繪制雷達(dá)圖時(shí),由于客戶群體有五個(gè),為了避免一次次讀數(shù)據(jù)的操作,引入了循環(huán):
values1=data1.iloc[0,1:6].tolist()
values2=data1.iloc[1,1:6].tolist()
values3=data1.iloc[2,1:6].tolist()
values4=data1.iloc[3,1:6].tolist()
values5=data1.iloc[4,1:6].tolist()
feature=['ZL','ZR','ZF','ZM','ZC']
kinds=['customer1','customer2','customer3','customer4','customer5']
angles=np.linspace(0,2*np.pi,len(feature),endpoint=False)
angles=np.concatenate((angles,[angles[0]]))
feature= np.concatenate((feature,[feature[0]]))
fig1=plt.figure()
for values in [values1,values2,values3,values4,values5]:
values=np.concatenate((values,[values[0]]))
ax=fig1.add_subplot(111,polar=True)
ax.plot(angles,values,linewidth=1)
ax.set_thetagrids(angles*180/np.pi,feature)
ax.set_ylim(-1,3)
plt.title('聚類特征雷達(dá)圖')
plt.legend(kinds)
plt.show()
由圖5可知:客戶群1在對(duì)應(yīng)艙位折扣系數(shù)的平均值最高,說明該類乘客經(jīng)常乘坐該航空公司的飛機(jī)出行;客戶群2入會(huì)時(shí)間較短,但在消費(fèi)時(shí)間間隔上較久,需要航空公司對(duì)其進(jìn)行發(fā)展,加大該群體對(duì)其的消費(fèi)力度;客戶群3在航空公司消費(fèi)頻率較高,飛行里程也較遠(yuǎn),他們是消費(fèi)的主體力量,航空公司應(yīng)該積極挽留該客戶群體;客戶群4各個(gè)特征指標(biāo)都無較大特點(diǎn),只是一般的客戶;客戶群5入會(huì)時(shí)間較長,但并未多次乘坐該航空公司飛機(jī),價(jià)值較低。
由此得出表3客戶價(jià)值分群表:根據(jù)不同特征描述將客戶群1,2,3,4,5分別劃分為:重要保持客戶,重要發(fā)展客戶,重要挽留客戶,一般客戶,以及低價(jià)值客戶。
表3 ?客戶價(jià)值分群表
根據(jù)雷達(dá)圖上不同客戶群,時(shí)間間隔插值中心與飛行次數(shù)中心以及平均每公里票價(jià)中心可以綜合分析出不同客戶群在某個(gè)時(shí)間區(qū)間飛行次數(shù)以及對(duì)應(yīng)時(shí)間段內(nèi)航班票價(jià),根據(jù)其喜好或需求,對(duì)于不同客戶群在飛行次數(shù)較高的時(shí)間段推薦不同票價(jià)的飛行航班。
5 ?結(jié) ?論
隨著國際航空市場(chǎng)的激烈競(jìng)爭(zhēng),部分航空公司面臨著旅客流失、競(jìng)爭(zhēng)力下降和資源未充分利用等經(jīng)營危機(jī),隨著國際航空市場(chǎng)的激烈競(jìng)爭(zhēng),因此通過建立合理的LRMFC客戶價(jià)值評(píng)估模型,對(duì)客戶進(jìn)行分群,分析及比較不同客戶群的客戶價(jià)值,并制定相應(yīng)的營銷策略,對(duì)不同的客戶群提供個(gè)性化的服務(wù),以此來提高航空公司的經(jīng)濟(jì)效益。
會(huì)員的升級(jí)與保級(jí)機(jī)制:航空公司可以在對(duì)會(huì)員升級(jí)保級(jí)或者降級(jí)的時(shí)間節(jié)點(diǎn)之前,對(duì)于接近但未達(dá)到要求的高消費(fèi)用戶進(jìn)行適當(dāng)?shù)奶嵝鸦蛘卟扇〈黉N活動(dòng)刺激其消費(fèi)并達(dá)到相應(yīng)標(biāo)準(zhǔn);對(duì)于已經(jīng)降級(jí)的會(huì)員可以采取消費(fèi)滿足一定金額直接恢復(fù)到歷史會(huì)員最高等級(jí),這樣既可以獲得收益,也能夠提高客戶滿意度。
積分兌換機(jī)制:航空公司對(duì)于本公司一定等級(jí)的會(huì)員可以采取積分累計(jì)制度,每一次在本公司購買機(jī)票可以獲得購買機(jī)票相應(yīng)金額一定比例的積分,積分可以用來換取機(jī)票折扣券,或者實(shí)體的禮物。
會(huì)員共享機(jī)制:各航空公司可合作,進(jìn)行會(huì)員特權(quán)共享,擁有一家航空公司的會(huì)員的人群同時(shí)也可享受另一家航空公司的部分會(huì)員特權(quán),可使兩家公司合作共贏。
參考文獻(xiàn):
[1] 季杰,陳強(qiáng)仁,朱東.基于機(jī)器學(xué)習(xí)的航空客戶價(jià)值分析 [J].電腦知識(shí)與技術(shù),2020,16(14):238-239.
[2] 徐伶伶,張淑蓮,張欣.基于大數(shù)據(jù)的航空公司客戶價(jià)值的分析與研究 [J].信息與電腦(理論版),2019,31(23):109-110.
[3] 劉婷婷,王小麗,葛明濤.基于數(shù)據(jù)挖掘的航空公司客戶價(jià)值分析 [J].山東工業(yè)技術(shù),2017(4):287-288.
[4] 繆海旭.民航旅客價(jià)值初探 [J].經(jīng)營與管理,2021(4):30-34
[5] 楊雄,徐鑫榮.基于LRFMC模型的客戶價(jià)值數(shù)據(jù)挖掘方案 [J].電腦知識(shí)與技術(shù),2021,17(6):22-25
作者簡介:儲(chǔ)文星(2000—),女,漢族,安徽安慶人,本科在讀,研究方向:數(shù)據(jù)挖掘、大數(shù)據(jù)分析;通訊作者:楊杉(1983 —),女,漢族,四川成都人,副教授,博士,研究方向:數(shù)據(jù)挖掘、大數(shù)據(jù)。