航空公司客户价值分析Kmeans
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 数据变换
由于原始数据没有直接给出LRFMC五个指标,需要自己计算,具体的计算方式为:
(1)L=LOAD_TIME-FFP_DATE
(2)R=LAST_TO_END
(3)F=FLIGHT_COUNT
(4) M=SEG_KM_SUM
(5)C=avg_discount
数据变换的Python代码如下:
1.def reduction_data(datafile,reoutfile):
2.
data=pd.read_excel(cleanoutfile,encoding='utf-8')
3.
data=data[['LOAD_TIME','FFP_DATE','LAST_TO_END','FLIGH T_COUNT','SEG_KM_SUM','avg_discount']]
4.#
data['L']=pd.datetime(data['LOAD_TIME'])-pd.datetime(d ata['FFP_DATE'])
5.#
data['L']=int(((parse(data['LOAD_TIME'])-parse(data['F FP_ADTE'])).days)/30)
6.####这四行代码费了我3个小时
7. d_ffp=pd.to_datetime(data['FFP_DATE'])
8. d_load=pd.to_datetime(data['LOAD_TIME'])
9. res=d_load-d_ffp
10. data['L']=res.map(lambda
x:x/np.timedelta64(30*24*60,'m'))
11. data['R']=data['LAST_TO_END']
12. data['F']=data['FLIGHT_COUNT']
13. data['M']=data['SEG_KM_SUM']
14. data['C']=data['avg_discount']
15. data=data[['L','R','F','M','C']]
16. data.to_excel(reoutfile)
变换结果如下:
4.1客户聚类
采用kMeans聚类算法对客户数据进行客户分组,聚成5组,Python代码如下:
1.import pandas as pd
2.from sklearn.cluster import KMeans
3.import matplotlib.pyplot as plt
4.from itertools import cycle
5.datafile='./tmp/zscore.xls'
6.k=5
7.classoutfile='./tmp/class.xls'
8.resoutfile='./tmp/result.xls'
9.data=pd.read_excel(datafile)
10.kmodel=KMeans(n_clusters=k,max_iter=1000)
11.kmodel.fit(data)
12.# print(kmodel.cluster_centers_)
13.r1=pd.Series(bels_).value_counts()
14.r2=pd.DataFrame(kmodel.cluster_centers_)
15.r=pd.concat([r2,r1],axis=1)
16.r.columns=list(data.columns)+['类别数目']
17.# print(r)
18.# r.to_excel(classoutfile,index=False)
19.r=pd.concat([data,pd.Series(bels_,index=da
ta.index)],axis=1)
20.r.columns=list(data.columns)+['聚类类别']
21.# r.to_excel(resoutfile,index=False)
对数据进行聚类分群的结果如下表所示: