首页 > 其他分享 >论如何使用机器学习,预测客户流失率,轻松实现客户精准维护

论如何使用机器学习,预测客户流失率,轻松实现客户精准维护

时间:2024-06-19 18:58:58浏览次数:11  
标签:这个 模型 流失 Altair 流失率 客户 数据 精准

01、案例说明

首先我们学习最经典的机器学习模型,就是监督学习(Supervised Learning)中的分类模型。

这边使用的是一个电信公司的案例,通过客户的基本资料和一些简单的互动信息,建立一个模型,以预测哪些客户有较高的可能性流失,从而进行补救。

因为研究显示得到一个新客户的成本是维持一个老客户的7倍,并且通过和老客户维持良好的关系之后,有更多的机会得到老客户的推荐而产生新客户,所以对于任何的企业,掌握客户何时可能会流失,而及早的提出补救做法,对于企业是非常必要和关键的,这个流程如下图所示:

图片

02、数据资料

首先我们分析数据,共有9990笔的数据。包括了客户所使用的电信种类、客户年纪、客户开始时间、联络记录、以及客户的平均账单金额。这边所使用的流失指标,可能是通过其他模型或是人工的方式给予标识,我们使用这个作为我们的指标,来预测客户的流失可能性。

03、操作流程

Step1读入数据

这里使用了一个简单的读入数据的算子,但是不要先急着开始做数据的模型,应该先对数据做一个全面的了解,包括数据的质量(有没有缺失?合不合理?)、种类(多项式?整数?)以及关联性等等,如下图所示:

图片

通过这个观察,我们就可以看到一些简单的问题。流失指标并不能作为一个分类的目标值,而其目标必须是一个二项式(Binomial)的数值,所以这个部分需要在数据整理之中进行处理,或者是有些人的年纪是1岁,这个可能是录入的错误,这个时候要做判断哪些是合理的数据或不是,从而进行处理。

同时也应该做一些简单的数据分析,大概理解数据的基本性质,这样可以更有效地对模型进行一个直观的判断。通常都是对于数据进行直观的图形了解,要使用何种图形则可以依照不同的目的来了解。例如我们可以通过对于不同属性和目标值的关系,大概掌握一些特性,如下图所示:

图片

但是这个只是一个分法,其真正的作用,是在之后到第二阶段,我们将其和心理特征解惑之后,就可以看出其强大的能力。

通过这个图形我们就可以发现数据里面的一些性质,可以很清楚的看得出来流失的机会和账单金额只有一定关系,这个就给你一个基本的信息,而在最后的模型之中,这个特质必须被反应出来。

在这个数据理解的过程中,如果发现属性和属性之间,或是属性和目标值之间的关联性,更应该进行关联性分析(也有算子来做这个处理)。如果关联系数太大,则要考虑是否应该将其排除,避免模型的效率低下或是模型的偏差。

Step2 数据整理

在这个步骤,我们基本上就处理之前所提到的问题。首先第一个是告诉系统何者是目标值(ChunIndicator);第二个是为了要决定哪些客户有流失的机会,我们将流失指标值从实数的数值属性转换为二项式数值的属性。在这个操作里面,注意到这个是通过人工的判断,将0到0.5的数值作为客户不会转换的标准,超过0.5就认为客户有可能会流失,把它标识为可能流失客户。如果更有信心,这个数值也可以定成其他的标准,如下图所示:

图片

这个步骤就是我们一般典型的所谓ETL的过程。当然还可以有很多别的操作,让数据变得更为有效和模型更为准确,在这个里面我们就不个别叙述。

Step3: 模型建立/检验

这里我们使用的是交叉检验的子程序,如果打开可以看到其中的操作过程。如同前面讲过,交叉检验是将数据分为数个等份(系统缺省值是10),利用不同的数据抽样,对于模型进行更严格的校准,所以这个是通常在RM模型建立中会最为常用的方式,如下图所示:

图片

这里需要特别注意的是,因为在原始数据中流失的客户与不会流失的客户比例事实上是不平衡的(21:9969),也就是说单方面的比例远远大于另外一方,这个对于最后的结果,会造成一定的模型偏差,所以在这边我们做了一个抽样的方式,将结果分为2个较为平衡的数据,来进行模型的建立。特别注意的是,因为这个抽样的算子是在交叉检验的模型里面,所以每一次的数据数量只有原来的1/10,而在通过抽样之后,因为指定目标值的(1:0.02)比例,所以可以看得出来比1/10的数据量还要再减少。大家可以仔细的研究一下其中的数目,会给大家更有深入的理解,如下图所示:

图片

之后的操作就比较直观,通过使用决策树的方式建立模型。右边的部分则是使用这个模型来对其测试的数据(原来的1/10)进行检验,并且将检验的结果输出。请注意这边的算子,必须使用正确的算子(Binomial)这样才不会造成错误。

04、结果说明

最后的结果是三个图,第一个是混淆矩阵,这个告诉我们模型的准确度以及相关资料,其整体的准确度很高(98.52%+/-0.58%),是一个非常好的结果。

另外一个是决策树模型本身,这边可以检验在之前数据理解的步骤中,我们观察到账单和流失的关系,的确是表现在其第一个节点,所以我们对于这个模型也是比较有信心的。第三个是检验的结果一并输出,这样可以理解混淆矩阵的来源 (计算方式),三张图如下所示:

图片

混淆矩阵验

图片

决策树模型本身

图片

检验的结果

以这个案例,我们就可以建立一个很清楚的模型来判断客户的可能流失程度。

05、建议练习

1.对于这个客户,如果我们将年纪中不合理的部分(年纪是1岁)或是分为几个不同的级别(Binning),如何有效的操作?

2.案例使用的是决策树的模型,得到很好的效果。但如果使用其他模型(如SVM)是否会有更优良的或更差的结果?

3.如何决定在抽样的操作中,其比例是最优的参数设定,可以用什么算子达到这个效果?

图片

如果对于这个案例已经了解,可以跳到案例模板中的 LIFT Chart 的案例,这个可以给你更直观的理解关于模型的准确度验证。


若您对数据分析以及人工智能感兴趣,欢迎与我们一起站在全球视野关注人工智能的发展,与Forrester 、德勤、麦肯锡等全球知名企业共探AI如何加速工业变革,共享众多优秀行业案例,开启AI人工智能全球新视野!!

共同参与6月20日由Altair主办的面向工程师的全球线上人工智能会议“AI for Engineers”。

点击立即免费报名,倒计时1天!!

(注:现在注册参会,即可于会后第一时间获得Altair全球100个客户案例资料)


关于 Altair RapidMiner

Altair RapidMiner 数据分析与人工智能平台,是 Altair 澳汰尔公司旗下仿真、HPC 和数据分析三块主营业务中的解决方案,它在数据分析领域最早实现将自动化数据科学、文本分析、自动特征工程和深度学习等多种功能同时集成的一站式数据分析平台,帮助用户解决从数据清洗、准备、数据科学建模到模型管理和部署,同时又支持数据和流数据的实时分析可视化的数据分析平台。

欲了解更多信息,欢迎关注公众号:Altair RapidMiner

标签:这个,模型,流失,Altair,流失率,客户,数据,精准
From: https://blog.csdn.net/altala/article/details/139810466

相关文章

  • 【日记】被客户一顿输出该怎么办(431 字)
    正文上午有个客户在电话里对着我一顿输出,说他们没有发票财务账务没法处理怎么怎么的。话里话外满满一股“全是你们的错”的味道。当时我很想笑,大姐,你对我输出有啥用啊。票是上级行开的,我们又没有开票权限,对我输出又解决不了问题,你去找市里啊。情况早就说了,纸质发票现......
  • Dynamics CRM 365 验证客户端的网络容量和吞吐量
    如何检查延迟CustomerEngagement应用包括一个基本的诊断工具,用于分析客户端与组织的连接并生成报告。若要运行诊断工具,请按照下列步骤操作。在用户的计算机或设备上,启动Web浏览器,然后登录到组织。输入以下URLhttps://myorg.crm.dynamics.com/tools/diagnostics/diag.asp......
  • NetMvc通过亚马逊方式服务器端和客户端上传MinIO顺利解决
    前言:1、由于项目是.NETFramework4.7MVCLayUI,所以需要找一个资源站点存放项目中静态资源文件;2、需要支持服务端和客户端都支持上传文件方式;3、调用简单,涉及库越少越好。结果:调用AWSSDK.S3和AWSSDK.Core实现文件上传到MinIO;调用MimeMapping获取文件ContentType......
  • 解锁微信客服的潜力:提升客户满意度与忠诚度
    随着全球数字化进程的加速,企业如何有效利用数字化工具提升服务质量和客户满意度,成为了企业国际化、数字化出海的关键。在这一大背景下,微信客服以其卓越的功能和广泛的用户基础,成为了企业数字化转型的重要助力。一、微信客服的概念与定位微信客服,是微信平台为企业提供的一种在......
  • k8s的python客户端库--kubernetes
    简介Kubernetes是什么Kubernetes是一个全新的基于容器技术的分布式架构解决方案,是Google开源的一个容器集群管理系统,Kubernetes简称K8S。Kubernetes是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对现有的编程语言、编程框架、中间件没有任何侵入性。K......
  • SSH客户端工具PuTTY使用教程
    认识一下SSH远程连接首次连接会有弹窗,同意即可输入用户名再输入密码,密码是不可见的默认每次连接都需要输入ip如果你想保存session下次选中你想连接的那一个,再点击Load但每次都需要输入用户名和密码,如果你觉得麻烦,可以新建bat文件:保存这个.bat文件,下次双击运行即......
  • 精准控制:Python 输入数值范围限制详解
    前言在实际开发过程中,经常需要对用户输入的数值进行限制,以确保输入的数据在合理的范围内。这不仅能防止程序错误,还能提高用户体验。作为一名测试工程师,掌握如何在Python中限制输入数值范围是非常有用的技能。本文将详细介绍如何使用Python实现这一功能,包括基础方法和高级应用......
  • C# 通过Win32API设置客户端系统时间
    在日常工作中,有时可能会需要获取或修改客户端电脑的系统时间,比如软件设置了Licence有效期,预计2024-06-0100:00:00到期,如果客户手动修改了客户端电脑时间,往前调整了一年,则软件就可以继续使用一年,如此循环往复,则Licence将形同虚设。所以有时候需要校验客户端电脑时间和服务器端时间......
  • C#聊天室客户端完整③
    窗体进入聊天室界面(panel里面,label,textbox,button):聊天界面(flowLayoutPanel(聊天面板)):文档大纲(panel设置顶层(登录界面),聊天界面在底层)步骤:设置进入聊天室→输入聊天→右边自己发送的消息→左边别人发的消息MyClient.cs(进入聊天室类)internalclassMyClie......
  • Windows 中的 csc 服务是指 "Client Side Caching",即客户端缓存服务。这个服务主要用
    Windows中的csc服务是指"ClientSideCaching",即客户端缓存服务。这个服务主要用于离线文件和文件夹的同步,特别是在使用“离线文件”功能时。下面是关于csc服务的一些介绍:功能:csc服务允许用户在离线状态下访问网络共享文件和文件夹。当用户连接到网络时,csc服务会自动将......