• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

客户流失预测--基于R语言C5.0

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

对于中国各大电信运营商而言,在整体市场规模相对稳定的情况下,能否维护好现有的客户是保证其收益的重中之重。因此,预测客户流失的可能性与否,直接关系到运营商的客户维护的重点正确与否。本文将基于”狗熊会“基础案例:收集客户流失,来演示基于C5.0算法的客户流失预测,数据下载 点击打开链接

一、数据结构查看与初步分析

读入并查看数据(见下图),一共包含10个变量,其中ID为每个用户的唯一标识,在进行预测分析时需要删除;流失用户为因变量,”0“表示未流失,”1“表示已流失。

>customers<-read.csv("customer.csv",stringsAsFactors= FALSE)


查看整体的用户流失情况(见下图),可以发现流失用户数较未流失用户数多


除此之外,我们还可以通过交叉表的形式查看各变量与用户流失与否的关系(见下多图)


由上图不难发现,签订过服务合约、改变过行为、有过关联购买、集团用户、套餐金额较高的用户有更高的概率不流失;反之,用户流失的概率就相对较高。

同时,我们也可以查看下用户的使用行为,包括使用月数、额外流量和额外通话时长,的分布情况,见下图

>par(mfrow=c(1,3)) ##将画板变为1行3列的样式,让三张图在同一行分布
> hist(customers$使用月数,main = '使用月数分布',xlab = "使用月数",ylab = "频次")
> hist(customers$额外通话时长,main="额外通话时长分布",xlab="额外通话时长",ylab="频次")
> hist(customers$额外流量,main="额外流量分布",xlab="额外流量",ylab="频次")


可见,使用月数以12-14月居多,额外通话时长与额外流量较集中分布。

二、流失预测与模型评价

首先,需要将原始数据随机划分为训练集和测试集

> set.seed(11) ##设置随机可重复
> t_sample<-sample(4975,4000)  ##设置训练集抽取随机因子,训练集包含4000条记录
> c_train<-customers[t_sample,]  ##抽取训练集
> c_test<-customers[-t_sample,]  ##以提出训练集的形式,抽取测试集

查看训练集和测试集中的记录是否符合随机分布要求,见下图,基本符合随机分布要求

> prop.table(table(c_train$流失用户))
> prop.table(table(c_test$流失用户))


接着,利用C5.0决策树算法进行训练

> c_train<-c_train[-1]
> c_test<-c_test[-1]##去掉id

library(C50)
> c_model<-C5.0(c_train[-9],c_train$流失用户) ##c_train 要剔除类变量“流失用户”
> summary(c_model) ##查看树


由上图可知,该树共有7各分支,并且准确划分了当中的3965条记录,错误率仅是0.9%。

下面用测试集对模型  c_model 进行评估

> c_t_model<-predict(c_model,c_test)

> table(c_test$流失用户,c_t_model) ##利用交叉表查看预测的准确率情况


可见,该模型的预测准确率在98.15%以上,仅18个预测出错,其中是流失用户的被预测为非流失的有4个,非流失用户被预测为流失用户的有14。

再接下来,尝试下优化模型(见 点击打开链接 ,内有两种优化模型的方法)

自适应增强算法是通过将很多能力较弱的学习算法组合在一起,使得这样的组合算法比任何单独的算法都强很多。在C5.0算法中,可以通过参数 trials,引入boosting算法,表示在模型中使用的独立决策树的数量。

> c_model_boost10<-C5.0(c_train[-9],c_train$流失用户,trials = 10) ##trials=10 已经成为一个事实标准的数字
> c_t_model_b<-predict(c_model_boost10,c_test)
> table(c_test$流失用户,c_t_model_b)


预测准确率上升到98.46%,上述幅度不明显。但流失用户的被预测为非流失的有6个,比原来的模型多了2个,而将流失用户的被预测为非流失的代价更大(可通过添加代价矩阵解决,见 点击打开链接),故该优化效果不明显。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言搭建炫酷的线上博客系统发布时间:2022-07-18
下一篇:
R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap