【数据分析实践】客户流失判断

您所在的位置:网站首页 探索性数据分析的内容有哪些 【数据分析实践】客户流失判断

【数据分析实践】客户流失判断

2023-09-18 18:11| 来源: 网络整理| 查看: 265

数据来源:客户流失判断

赛题理解 任务理解:建分类模型,判断客户是否流失,属于二分类问题数据 1). 数据理解:对字段要理解,每个字段有什么用 2). 赛事提供了train、test_noLabel、samples_noLabel和submit_example这4个csv文件,对这4个文件也要清楚各是什么用;首先train是训练集,test_noLabel是无标签的测试集,submit_example是提交示例,samples_noLabel是无标签示例;起初我在查看4个文件后发现submit_example的ID就是test_noLabel的ID,所以以为测试集可以合并,然后提交的时候用samples_noLabel的预测结果去提交,在建模预测后提交结果发现并没用,提交的所需要的是test_noLabel的预测结果。所以。。为啥子要弄个samples_noLabel没什么用??? 1.分析思路 明确分析目的: 1.预测哪些用户可能流失 2.可能流失的客户有哪些特征确定分析思路: 1.结合给出的数据字段,可以将客户流失大致分为三个维度:客户属性、客户消费行为、服务属性。 2.首先从单个特征依次分析其与客户流失的关系,然后对特征之间的相关性进一步探索与可视化。 在这里插入图片描述 2.探索性数据分析 2.1读取数据并查看

包括对数据类型的查看、检查数据集的缺失值情况、空值情况等。

train = pd.read_csv('train.csv') test = pd.read_csv('test_noLabel.csv') test_label1 = pd.read_csv('submit_example.csv') # 这个是提交示例也好像没什么用 # 检查数据集大小 print('各个数据集的维度依次是:train_{},test_{},submission_{}'.format(train.shape, test.shape, test_label1.shape)) # 输出:各个数据集的维度依次是:train_(5227, 16),test_(1307, 15),submission_(1307, 2) # 描述性统计 train.describe(include='all')

结论: 该数据集无缺失值也无空值。

接下来对整体数据的正负样例进行查看,发现数据集不是平衡数据集。 用饼图显示客户流失率:

2.2单一特征分析

《精益数据分析》第二章是对指标的介绍,其中指出好的数据指标是比率,仅通过对流失客户与非流失客户关于某个特征的频数计数,不能直接比较二者之间的客户流失率。 这段代码将直方图频数转换为百分比:

def barplot_percentages(df,feature): g=df.groupby(by=feature)['Label'].value_counts(1).to_frame() g.rename(columns={'Label':'percentage'},inplace=True) g.reset_index(inplace=True) ax=sns.barplot(x=feature,y='percentage', hue='Label', data=g) ax.set_yticklabels(['{:,.0%}'.format(y) for y in ax.get_yticks()]) plt.show() 2.2.1客户属性维度分析 userProfile=train[['Dependents','Partner','gender','SeniorCitizen','Label']] barplot_percentages(userProfile,'Dependents') barplot_percentages(userProfile,'Partner') barplot_percentages(userProfile,'gender') barplot_percentages(userProfile,'SeniorCitizen')

结论一:有家属和无家属的客户流失占比相差较大,无家属的客户流失占比更高。 结论二:单身的客户流失率比非单身的客户流失率要高。 结论三:男性和女性的客户流失率几乎无差别,说明性别对于客户流失几乎无影响。 结论四:老年人中客户流失占比比非老年人中的客户流失占比相对要高,但是二者相差也不太大,说明是否为老年人对客户流失有弱影响。

2.2.2服务属性分析 userUsageFeatures=train[['InternetService','DeviceProtection','TVProgram','MultipleLines','PhoneService','Label']] def multi_barplot_percentages(df,features): plt.figure(figsize=(12,12)) fig=plt.subplot() cnt=0 for feature in features: g=df.groupby(by=feature)['Label'].value_counts(1).to_frame() g.rename(columns={'Label':'percentage'},inplace=True) g.reset_index(inplace=True) plt.subplot(321+cnt) ax=sns.barplot(x=feature,y='percentage', hue='Label', data=g) ax.set_yticklabels(['{:,.0%}'.format(y) for y in ax.get_yticks()]) cnt+=1 plt.show() multi_barplot_percentages(userUsageFeatures,['InternetService','DeviceProtection','TVProgram','MultipleLines','PhoneService'])

结论一:网络服务中接受光纤服务的客户流失率明显高于其他DLS甚至没用网络服务的。 结论二:无设备保护的客户流失率高。 结论三:对于有无电视节目服务,客户流失率几乎相差不大,可以认为电视节目对客户流失的影响与其他特征相比可以忽略。 结论四:有关电话的两项服务中多线服务对客户流失的影响可以忽略,有无电话服务对客户流失的影响十分微弱。

2.2.3客户消费行为分析

对数值型特征采用核密度函数进行绘图分析:

def kdeplot(df,feature): plt.figure() ax1=sns.kdeplot(df[df['Label']=='No'][feature],label='Label:No') ax1=sns.kdeplot(df[df['Label']=='Yes'][feature],label='Label:Yes') plt.title('KDE for {}'.format(feature)) plt.show() kdeplot(userPaymentFeatures,'TotalCharges') kdeplot(userPaymentFeatures,'MonthlyCharges')

结论一:在支付方式(PaymentMethod)中,电子支付最容易流失客户。 结论二:合同签约期(Contract)越长的用户越不容易流失。 结论三:总费用(TotalCharges)较低时容易流失客户。 结论四:月费(MonthlyCharges)越高越容易流失客户。

2.3特征相关性分析

从上述分析中选出相关特征Dependents、Partner、tenure(int64)、InternetService、DeviceProtection、TVProgram、Contract、PaymentMethod、TotalCharges(float64)、MonthlyCharges(float64)

用热力图分析特征之间的相关性:

data=train.drop(['ID','SeniorCitizen','gender','PhoneService','MultipleLines','Label'],axis=1) data_dummy = pd.get_dummies(data) Label_mapDict={'Yes':1,'No':0} data_dummy['Label']=train['Label'].map(Label_mapDict) plt.figure(figsize=(30,20)) sns.heatmap(data_dummy.drop(['Label'],axis=1).corr(), xticklabels=data_dummy.drop(['Label'],axis=1).columns, yticklabels=data_dummy.drop(['Label'],axis=1).columns, cmap='RdYlGn',annot=True) plt.show() 3.总结

从上述三个维度来看,可以有如下结论: 客户属性:无伴侣、无家属的客户流失率较高 服务属性:接入光纤网络、无设备保护的客户流失率较高 客户消费属性:合同期短、电子支付方式、上网时间短的客户流失率高,此外,月费越高客户流失率越高

个人想法: 1.针对用户:现如今单身似乎是一种趋势,对于单身客户,可考虑推出某些活动增强单身客户粘性,比如参考现有的一些家庭套餐、学校套餐等,是否可以考虑“朋友圈”套餐来推广流量套餐等。 2.针对服务:设备保护力度需要提高,可以考虑与网络服务和互联网相关行业合作 3.针对客户缴费:月费越高越容易流失客户是很显而易见的,降低客户流失的目的就是提高客户留存,为了提高客户粘性,因此可以考虑两种思路——一种是适当调整月费或者对于月付客户提供一些让利反馈活动,另一种是在对于年付的优惠活动力度加大,使得年付与月付的差距更明显,尽量将月付客户往年付转化。

后续过程在另一篇客户流失判断–数据建模


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3