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