一、项目介绍
不管是互联网还是传统行业,大都存在用户流失问题。本文主要对某电信服务商的用户基础数据进行分析,探索对用户流失有深刻影响的相关指标,帮助服务商制定有针对性的用户挽留计划,提高用户留存率。
二、技术工具
本项目以jupyter notebook为平台,以Python语言为基础,采用pandas进行数据整理和统计分析,用matplotlib、seaborn进行可视化呈现,scikit-learn的LogisticRegression建模预测。
三、数据初探
数据集来源于kaggle,每一行代表一条用户数据,每列代表一些用户属性,包括:用户流失指标(Churn)、用户个人信息(gender、SeniorCitizen、Partner、Dependents)、用户账户信息数据(tenure 、Contract 、PaperlessBilling、PaymentMethod、MonthlyCharges 、 TotalCharges)、用户订阅服务数据(PhoneService、MultipleLines、InternetService 、OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport、StreamingTV 、StreamingMovies)。
观察数据后,提出如下几个问题:
1、用户个人信息,如家庭成员,是否影响用户流失?;2、用户订阅服务的对用户流失的影响(直观上感觉影响不大)?;3、用户账户信息数据(重点)如何影响用户流失?
四、数据清洗
导入数据
观察头部数据
查看各字段数据类型、缺失值。发现TotalCharges的数据类型不是数值型,需要进行处理。
查看所有字段唯一值
缺失值查看、数据类型转换及缺失值处理(第一次做的时候TotalCharges字段有11个缺失值,后来处理后就消失了,这里附上缺失值处理方法)
五、数据可视化
将数据集的数据分为分类特征数据和数值特征数据进行可视化呈现。
1、分类特征字段(16个)
1.1 用户个人信息(gender, SeniorCitizen, Partner, Dependents )
结论:1、用户流失指标与性别gender基本无关;2、老年用户SeniorCitizen流失比例相对大一些,可能是由于年长的用户对这些新生事物不感冒,抑或是和老年人死亡率高有关系;3、家属(Partner、Dependents)较少的用户更容易流失,家庭成员少了自然对通信服务需求就少了,这个很好理解。
1.2 用户订阅服务(PhoneService、MultipleLines、InternetService 、OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport、StreamingTV 、StreamingMovies)
1.2.1 手机、网络服务指标
1.2.2 其他订阅服务
结论:1、手机服务指标PhoneService、MultiLines似乎影响不大;2、网络服务指标中,采用Fiber optic服务的用户更容易流失;3、其他订阅服务指标中,前四项服务(OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport)对用户流失指标作用类似,没有订阅的用户较容易流失,后两项(StreamingTV 、StreamingMovies)没有明显特征,进行特征分析时可以忽略。
1.3 用户账户信息指标(Contract 、PaperlessBilling、PaymentMethod)
结论:1、采用无纸化账单(PaperlessBilling)时用户更容易流失;2、合同签约期(Contract)越长的用户越不容易流失。考虑到2年以上的合同,用户如果毁约则会有一定程度的惩罚,这个条件限制了用户违约性的解约行为;3、电子支付(Electronic cherk)的支付方式明显更容易流失客户,也许时因为办理业务方便,因此去留比较随性。
2、数值特征数据
主要包括:用户存续期tenure、月费MonthlyCharges、总费用TotalCharges
构造绘制核密度图函数
结论:1、新用户明显更容易流失,体现出维持老用户的重要性;2、月费越高越容易流失,这个好理解,所以高额月费必须要伴随着更多更优质的服务,否则将导致用户流失;3、总费用越少越较容易流失;4、明显看出用户存续期(tenure)和月费(MonthlyCharges)两个指标对用户流失(Churn)判断很重要。
六、特征工程
简单的数据处理
# 删除无用的列
七、逻辑回归建模
# 导入模块
OUT:0.7870326549929011
根据预测结果得到各变量对Churn影响的权重:
weights = pd.Series(model.coef_[0], index=X.columns)
# 得到与Churn最正相关的10个变量的权重条形图
fig1, ax1 = plt.subplots(figsize=(25, 12))
ax1 = weights.sort_values(ascending=False)[:10].plot(kind='barh')
ax1.set_title('Weights of The Most Positive Variables To Predict Churn', fontsize=35)
与用户流失Churn的最正相关的10个因素权重图
fig2, ax2 = plt.subplots(figsize=(25, 12))
ax2 = weights.sort_values(ascending=False)[-10:].plot(kind='barh')
ax2.set_title('Weights of The Most Nagivative Variables To Predict Churn', fontsize=35)
与用户流失Churn的最负相关的10个因素权重图
结论:根据逻辑回归模型预测得到:1、按月合同Contract_Month_To_Month和总费用TotalCharges是导致用户流失最关键的两个因素;2、与此相反,两年合同Contract_Two_Year和用户存续期tenure是提高用户忠诚度的最重要指标;3、此外,电子支付(Electronic cherk)、无纸化账单(PaperlessBilling)、fibre optic网络服务、年长用户等是导致用户流失其他因素。
八、逻辑回归系统优化
其实这样还只是万里长征第一步,还有很多工作要做,调参(参数优化、交叉验证)、模型融合等等。本人对机器学习的掌握有限,余下部分待今后补充。
九、总结
本项目利用某电信服务供应商的用户数据,通过数据清洗、数据可视化展现、逻辑回归建模等方式,对用户信息如何影响用户流失指标进行分析,得到如下结论:
1、年长用户 (SeniorCitizen)比较容易流失,公司需根据这部分人群的体量和利润,考虑是否减少对这部分人群营销力度,降低营销成本。
2、除Fiber optic服务的用户更容易流失外,其他手机、网络服务指标没有明显影响。
3、其他订阅服务指标中,除电视流和电影流服务外,订阅其他四项服务(OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport)能减少用户流失,公司应加大对这几项服务的营销力度,可以采取赠送或者捆绑的方式。
4、分析用户账户信息,采用无纸化账单的方式用户流失率明显更高。猜想,虽然无纸化账单提高了效率,但可能降低了用户体验,进而降低用户忠诚度,应适当调整采用无纸化账单比例,并持续跟踪用户流失率情况。
5、考虑通过采取优惠减免、增加服务内容,引导用户签约中长期(两年以上)的合同,提高用户留存率。
6、电子支付(Electronic cherk)会导致用户流失,网上支付是大势所趋,方便的同时必将带来用户流失,对此似乎没有很好的办法。
7、高额月费(MonthlyCharges)将造成用户流失,一方面需要权衡服务费用和用户流失之间平衡关系,适当降低费用以提高用户留存率;另一方面,高额月费搭配优质服务或许能提高用户满意度,减少用户流失。
8、用户存续期(tenure)是用户忠诚度的体现,不仅需要采用正确的营销策略,更是价格、服务等因素综合作用的结果。
9、根据逻辑回归建模得到的导致用户流失指标权重,按其影响程度高低,采取上述措施建议。