百度|用Python来进行用户流失预测的实战
文章图片
借用生存分析的方法来进行用户流失的预测 , 用到了Cox Proportional Hazards模型 。
客户流失率很难预测 。 在你能做一些事情来阻止客户离开之前 , 你需要知道 , 谁将离开 , 什么时候离开 , 这将在多大程度上影响你的业务 。 在这篇文章中 , 我将解释使用生存分析来预测和预防流失的技术 。
客户会不会流失许多数据分析师试图用黑白分明的方式来模拟这个问题:客户流失vs客户没有流失 。 我们很容易用这种方式来看待这个问题 , 因为它是一种我们都知道的模型 —— 监督分类 。
但是这样做忽略了客户流失预测问题的许多细微之处 —— 风险、时间线、客户离开的成本等等 。
不管怎样 , 让我们从一个分类模型开始 , 看看我们最终的结果 。
我们的数据集我们使用的数据集是Kaggle Telco Churn dataset:https://www.kaggle.com/c/telco-churn/data , 它包含超过7000个客户的记录 , 包括特征 , 比如客户的每月费用 , 成为客户的时长(几个月) , 是否有各种附加互联网服务等等 。
以下是前5行:
首先你会注意到有很多类别变量为文本值(' Yes ' ,' No ' , 等等) , 我们使用pd.get_dummies来修复这些:
【百度|用Python来进行用户流失预测的实战】dummies = pd.get_dummies( data[[ 'gender' 'SeniorCitizen' 'Partner' 'Dependents' 'tenure' 'PhoneService' 'MultipleLines' 'InternetService' 'OnlineSecurity' 'OnlineBackup' 'DeviceProtection' 'TechSupport' 'StreamingTV' 'StreamingMovies' 'Contract' 'PaperlessBilling' 'PaymentMethod' 'Churn'
) data = https://mparticle.uc.cn/api/dummies.join(data[['MonthlyCharges' 'TotalCharges'
)
如果你按照下面的步骤去做 , 你还需要修复total charge列中的一些缺失值 , 这些值使整列变成了文本而不是数字:data['TotalCharges'
= data[['TotalCharges'
.replace([' '
'0')data['TotalCharges'
= pd.to_numeric(data['TotalCharges'
)
现在我们有了一个可用的数据格式 , 我们把它可视化一下:from matplotlib import pyplot as plt plt.scatter( data['tenure'
data['MonthlyCharges'
c=data['Churn_Yes'
) plt.xlabel('Customer Tenure (Months)') plt.ylabel('Monthly Charges')
很难从这张图中得出任何结论 , 这个图将客户的tenure(我们正在努力改进的东西)与他们的月费进行了比较 。 我们继续去训练一个逻辑回归模型 , 看看我们是否可以使用这些虚拟的特征来预测客户的流失 。
- 京东|适合过年送长辈的数码好物,好用不贵+大牌保障,最后一个太实用
- 小米科技|预算只有两三千买这三款,颜值性能卓越,没有超高预算的用户看看
- AMD|AMD预告新款Radeon Pro专业卡:第一次用上6nm工艺
- 东南亚|MIUI13深度使用报告,这还是我认识的MIUI吗?网友评价很真实
- 小米 11 Ultra 内测 NFC“读写勿扰”与“解锁后使用”功能
- 百度|马化腾的一句话,腾讯市值一小时暴涨1400亿港币,马云格局还是小了
- 5G|华为利用5G毫米波发现园区入侵者,这让美国5G联盟情何以堪
- 打脸!华为在美国,用专利把英特尔、苹果、微软、高通打败了
- 百度|传英伟达加大GeForce RTX 3050供应力度,大量供货将在春节后到来
- 智能手机|全球第17位!App Annie报告:2021年中国人均每天用手机3.3小时