基于SPSS Moderler和R的电信业客户流失分析预测

2024-02-05 07:30

本文主要是介绍基于SPSS Moderler和R的电信业客户流失分析预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节的内容是衔接上节数据挖掘宽表处理的部分,上节分析了电信业客户流失问题分析预测的准备工作,这节继续进行探索性分析和建模分析及模型评估,客户流失预测分为流失规则的预测以及流失评分预测。本节的流失规则预测基于决策树算法,流失评分预测基于神经网络算法实现。

四、探索性数据分析

1、离散型变量

1)名义型离散变量

使用描述图形进行探索性分析:

eg: 手机品牌的分布:

s<-summary(churn_analysis$Handset)

pie(s)    #手机品牌分布

 

2)有序性离散变量

话务量级别:

 

2、连续型变量

绘图:直方图、箱线图

在网时长和总通话费用的图形展现:

 

3、变量之间关系的探索性分析

1)离散变量与离散变量

使用网络图分析:

交叉列联表和卡方检验:SPSS Moderler输出节点“矩阵”,进行列联表分析:

2)离散变量与连续变量

高峰期通话时长与流失之间的关系:

在0.05的显著性水平下,由F值可以看出流失客户与不流失客户的高峰期通话时长有着显著差异。

3)连续变量与连续变量

可以通过散点图直观展示,也可通过计算相关系数来展示:

五、、建立模型

1、细分类模型——聚类

适用于:客户价值较低的客户群

思路:使用客户的属性变量和行为变量(不包括是否流失)对客户进行聚类分析,分析各个群组的流失率情况,找出流失率较高的群组,并分析刻画他们的特征,以便业务人员有针对性的制订营销策略。

1)连续变量离散化处理

2)类型节点处理

3)K-均值聚类

当k=7时,得到的聚类成果如下:

4)流失率计算

将这7个群组按照是否流失进行汇总,求出各群组的流失率

对以上的汇总结果进行变量排序和变量重命名后输出到表格中展示,如下:

 

5)特征分析

取流失率较高的两个群组(高流失客户群体),分析他们的特征,找出可能的流失原因。取聚类-1和聚类5两个群组,进行特征分析

流失率较高的群组特征概括:

群组编号

群组占比

流失率

客户主要特征

特征概括

聚类-1

13.6%

0.148

总花费较低
平均每分钟花费高
处免费时长外计费时长少
高峰与非高峰通话时长少
周末通话时长较长
使用的资费方案为play

低价值客户
周末电话为主
资费方案有待优化

聚类-5

10.3%

0.083

总花费较高
高峰通话时间长,非高峰短
周末电话占比低
周末通话次数少,但通话时间较长

较高价值客户
上班族,以工作电话为主
周末亲情电话

以上为流失率较高的两类客户的特征概括,可以将这种模型提供给运营和营销人员,方便他们根据客户特征制定相关的营销策略,有效率地提高流失召回效率。

2、流失规则预测模型

1)分区

按照7:3分配训练集和测试集,也可改变该分配比例来比较分类预测的效果

 

 2)建立决策树模型

 

3)使用模型查看器查看决策树分类规则 

Tariff_OK in [ "High CAT 100" "High CAT 50" "High Play 100" ] [ 模式:1 ] => 1 

Tariff_OK in [ "OK" ] [ 模式:0 ] 

    Handset in [ "ASAD170" "BS210" "CAS60" "S80" "WC95" ] [ 模式:0 ] => 0 

    Handset in [ "ASAD90" ] [ 模式:1 ] 

       Usage_Band = 中使用率 [ 模式:1 ] => 1 

       Usage_Band = 低使用率 [ 模式:0 ] => 0 

       Usage_Band = 极高使用率 [ 模式:1 ] 

           Gender = 女 [ 模式:1 ] 

              Peak_mins_Ratio <= 0.830 [ 模式:1 ] => 1 

              Peak_mins_Ratio > 0.830 [ 模式:0 ] 

                  Peak_mins_Trend <= 7.424 [ 模式:1 ] => 1 

                  Peak_mins_Trend > 7.424 [ 模式:0 ] => 0 

           Gender = 男 [ 模式:0 ] => 0 

       Usage_Band = 高使用率 [ 模式:1 ] 

           Age <= 51 [ 模式:1 ] => 1 

           Age > 51 [ 模式:0 ] => 0 

    Handset in [ "BS110" ] [ 模式:0 ] 

       Peak_mins_Ratio <= 0.491 [ 模式:0 ] 

           National_calls <= 88 [ 模式:0 ] 

              Gender = 女 [ 模式:0 ] => 0 

              Gender = 男 [ 模式:1 ] => 1 

           National_calls > 88 [ 模式:1 ] 

              AveOffPeak <= 13.254 [ 模式:1 ] => 1 

              AveOffPeak > 13.254 [ 模式:0 ] => 0 

       Peak_mins_Ratio > 0.491 [ 模式:0 ] 

           International_mins <= 178.474 [ 模式:0 ] 

              AveNational <= 10.161 [ 模式:0 ] => 0 

              AveNational > 10.161 [ 模式:0 ] 

                  Gender = 女 [ 模式:0 ] => 0 

                  Gender = 男 [ 模式:1 ] => 1 

           International_mins > 178.474 [ 模式:0 ] 

              International_mins_Ratio <= 0.183 [ 模式:0 ] => 0 

              International_mins_Ratio > 0.183 [ 模式:1 ] => 1 

    Handset in [ "CAS30" ] [ 模式:1 ] 

       call_cost_per_min <= 7.915 [ 模式:0 ] => 0 

       call_cost_per_min > 7.915 [ 模式:1 ] 

           Usage_Band in [ "中使用率" "极高使用率" "高使用率" ] [ 模式:1 ] => 1 

           Usage_Band in [ "低使用率" ] [ 模式:1 ] 

              Peak_calls <= 176 [ 模式:1 ] 

                  AveOffPeak <= 1.591 [ 模式:0 ] => 0 

                  AveOffPeak > 1.591 [ 模式:1 ] => 1 

              Peak_calls > 176 [ 模式:0 ] => 0 

    Handset in [ "S50" ] [ 模式:0 ] 

       Total_Cost <= 99.515 [ 模式:0 ] 

           Tariff in [ "CAT 100" "CAT 200" ] [ 模式:0 ] => 0 

           Tariff in [ "CAT 50" "Play 300" ] [ 模式:0 ] => 0 

           Tariff in [ "Play 100" ] [ 模式:1 ] => 1 

       Total_Cost > 99.515 [ 模式:0 ] 

           Age <= 25 [ 模式:0 ] 

              International_mins <= 181.009 [ 模式:0 ] 

                  Gender = 女 [ 模式:1 ] => 1 

                  Gender = 男 [ 模式:0 ] => 0 

              International_mins > 181.009 [ 模式:1 ] 

                  average cost min <= 0.145 [ 模式:0 ] => 0 

                  average cost min > 0.145 [ 模式:1 ] => 1 

           Age > 25 [ 模式:0 ] 

              International_mins <= 178.126 [ 模式:0 ] 

                  Gender = 女 [ 模式:1 ] => 1 

                  Gender = 男 [ 模式:0 ] => 0 

              International_mins > 178.126 [ 模式:0 ] => 0 

    Handset in [ "SOP10" "SOP20" ] [ 模式:1 ] => 1 

4)决策树

5)查看分类训练和预测结果

6)生成SQL脚本

a) 生成模型后选择生成SQL脚本  

*注:boosting默认不能生成SQL脚本

b) 接下来,将SQL脚本导入PL/SQL中:

文件—>打开—>SQL脚本

c) 将数据EXCEL表导入PL/SQL中:

对于数据集较小的表:

可以先在数据库中建立一个表(CLASS)

最终显示的结果为C0和C1两列值,C0表示的是预测值,C1表示预测的准确率。

7)模型评估

提升图:

 

图形结果显示,提升度随RPP(正类预测比例)的提高呈降序分布,且提升度较高,说明模型的预测准确率较高,比随机预测提升了较高的水平。

ROC曲线:

ROC曲线显示预测模型对1的敏感度很高,说明模型的预测效果很好。

8)模型分析

 

 结果显示模型的整体预测准去率达到了94.61%,而且模型的命中率为61.82%,模型的查全率为75.78%。

3、流失评分预测模型(神经网络算法实现)

 

 1)缺失值处理

将空值取值为0

2)离散目标变量(churn)更改为连续目标变量(churncore)

将1取值为100

0取值为0

3)随机抽取训练集和测试集

 

4)建立神经网络模型

 

5)模型分析和评估

 

转载于:https://www.cnblogs.com/yyyu2/p/6595114.html

这篇关于基于SPSS Moderler和R的电信业客户流失分析预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680165

相关文章

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

python-nmap实现python利用nmap进行扫描分析

《python-nmap实现python利用nmap进行扫描分析》Nmap是一个非常用的网络/端口扫描工具,如果想将nmap集成进你的工具里,可以使用python-nmap这个python库,它提供了... 目录前言python-nmap的基本使用PortScanner扫描PortScannerAsync异

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置