分类

Reads: 2079 Edit

1 功能描述

分类是数据挖掘最重要的任务,判断垃圾邮件,图像识别、客服流失预测等都需要用到分类模型。

2 预处理

2.1 数据处理

我们这里将采用Telephone.sav数据文件,根据客户的身份信息和电信消费数据,并结合几个可以用于分类的数据挖掘模型来判断该用户是否会流失。

首先需要将数据读取到SPSS Modeler软件中。将“源”选项卡下面的Statistics节点添加到流编辑区域

mdl-241

双击打开Statistics节点;选择Telephone.sav文件的存放路径,点击确定。

mdl-242

将“输出”选项卡下面的表节点添加到数据流中,点击运行,可以发现数据已成功读取到SPSS Modeler中,其中,最后一列即是用户是否流失的变量。

mdl-243

将“字段选项”选项卡下面的类型节点添加到数据流中,并与Statistics节点连接。

mdl-244

双击打开类型节点。其中类型节点自动帮我们初始化了变量的测量(类型),其中性别和婚姻状况变量默认是“名义类型”,一般多分类变量适合用“名义类型”,而性别变量属于二分类变量,其用“标志类型”可以提高运行效率。所以将所有二分类变量的类型修改为“标志”。

mdl-245

仍然在类型变量设置窗口,将流失的角色设为“目标”。其他变量角色设为“输入”。

mdl-246

2.2 特征选择

由于输出变量众多,所以可以使用特征选择模型来初步判断对预测流失来说重要的变量,在后续的建模中仅使用这些重要变量。

将“建模”选项卡下面的“特征选择”节点添加到数据流,并与类型节点连接。

mdl-247

双击打开“特征选择”节点,切换到“选项”页面。在所有排列的字段中选择使用哪些变量,这里仅勾选重要。同时,可以在下方选择判断变量重要性的方法,这里采用默认方法。点击确定。

mdl-248

数据流中生成了特征选择的训练模型,将其移动到合适的位置。

mdl-249

双击打开特征选择的训练模型,可以看出,对预测来说重要的变量有7个。

点击窗口上方的生成,在点击过滤器。

mdl-250

在模式选择窗口保持默认,点击确定。

mdl-251

数据流编辑区域将生产过滤节点,将其连接到数据流。

mdl-252

接着,我们将对数据的极值和缺失值进行处理。

将“输出”选项卡下面的“数据审核”节点添加到数据流,并与过滤节点连接。

mdl-253

双击打开数据审核节点,可以发现有效记录均为1000,说明不存在缺失值。另外,收入、基本费用、免费部分、无线费用几个变量存在离群值或极值,将其操作列中选择丢弃(即将存在异常值的样本整体删除,当然也可以采用替换等方法)。

选择好处理异常值的方法后,点击窗口上方的生成,再点击离群值和极值超节点。

mdl-254

数据流编辑区域将生成“离群值和极值”超节点,将其连接到数据流中。

需要注意的是:离群值和极值的处理是一个动态过程,将当前样本中的离群值和极值删除后,可能其他值又会变成离群值和极值,所以需要多次处理,这里不再演示。

mdl-255

由于预测变量流失的取值中大多数为0,取值为1的样本偏少,直接建模会使结果估计有偏,所以需要对样本进行平衡处理。

将“样本记录”选项卡下面的“平衡”节点添加到数据流,并与“离群值和极值”超节点连接。

mdl-255-1

双击打开平衡节点,条件输入:流失=0,因子输入:0.5,即将流失取0的样本缩减一半。

mdl-255-2

为了提高模型的泛化能力,在建模前需要对样本进行分区处理。

将“字段记录”选项卡下面的“分区”节点添加到数据流,并与平衡节点连接。

mdl-256

双击打开“分区”节点,设置训练分区和测试分区的大小分别为70%和30%,点击确定。

mdl-257

3 决策树模型

决策树可以根据选定的条件不断对样本进行划分,最终得到分类的目的。这里不再讨论决策树模型的具体算法,仅介绍其在SPSS Modeler中的应用。

将“建模”选项卡下面的“c5.0”节点添加到数据流,并与分区节点连接。

mdl-258

双击打开c5.0节点,在模型设置页面,我们可以保持默认选项,直接点击运行来进行决策树模型的训练。当然,如果对决策树模型的算法比较熟悉, 也可以选择专家模型来调整决策树模型的参数。

mdl-259

模型训练好后,将自动添加到数据流中。

mdl-260

双击打开决策树训练好的模型,里面有决策树的“树结构”以及决策规则。

mdl-261

回到数据流编辑区域,将“输出”选项卡下面的“分析”节点添加到数据流,并与模型节点连接。

mdl-262

双击打开分析节点,设置好参数后运行,将给出决策树模型的估计精度。其中训练样本的精度为70%,测试分区的精度为71.27%。

说明:需要注意的是,每次点击分析,数据流中的平衡节点和分区节点都会自动随机选择样本,使分析节点中计算的精度发生改变!

mdl-263

4 支持向量机(SVM)

支持向量机模型利用线性规划的方法来实现样本的分类,而且借助核函数可以高效解决非线性分类问题。这里不再讨论支持向量机模型的具体算法,仅介绍其在SPSS Modeler中的应用。

仍然采用前面例子的数据,前面的处理步骤相同,这里不再演示。

将“建模”选项卡下面的“SVM”节点添加到数据流,并与分区节点连接。

mdl-264

双击打开SVM节点,保持默认设置,点击运行。

mdl-265

模型训练好后,将自动添加到数据流中。由于SVM模型中并没有特别的模型输出,所以不在展示训练好的SVM模型。

将“输出”选项卡下面的“分析”节点添加到数据流,并与模型节点连接。

mdl-266

双击打开分析节点,设置好参数后运行,将给出SVM模型的估计精度。其中训练样本的精度为70.52%,测试分区的精度为72.97%。

mdl-267

5 神经网络

神经网络模型模型人类大脑神经元的组织结构,构建多个相互连接的处理单元结构来处理数据。对数据进行分类或者回归分析。这里不再讨论神经网络模型的具体算法,仅介绍其在SPSS Modeler中的应用。

仍然采用前面例子的数据,前面的处理步骤相同,这里不再演示。

将“建模”选项卡下面的“神经网络”节点添加到数据流,并与类型节点连接。

mdl-268

双击打开神经网络节点,保持默认设置,点击运行。

mdl-269

模型训练好后,将自动添加到数据流中。

mdl-270

双击打开决策树训练好的模型,里面有变量的重要性,预测精度和神经网络的网络结构图。

mdl-271

回到数据流编辑区域,将“输出”选项卡下面的“分析”节点添加到数据流,并与模型节点连接。

mdl-272

双击打开分析节点,设置好参数后运行,将给出神经网络模型的估计精度。其中训练样本的精度为69.6%,测试分区的精度为70.72%。

mdl-273

6 KNN模型

KNN模型根据样本之间的距离来进行分类。这里不再讨论KNN模型的具体算法,仅介绍其在SPSS Modeler中的应用。

仍然采用前面例子的数据,前面的处理步骤相同,这里不再演示。

将“建模”选项卡下面的“KNN”节点添加到数据流,并与类型节点连接。

mdl-274

双击打开KNN节点,在目标页面选择“预测目标字段”,其他保持默认,点击运行。

mdl-275

模型训练好后,将自动添加到数据流中。

KNN训练好的模型中并无特别的模型信息,这里不再演示。

将“输出”选项卡下面的“分析”节点添加到数据流,并与模型节点连接。

mdl-276

双击打开分析节点,设置好参数后运行,将给出KNN模型的估计精度。其中训练样本的精度为68.07%,测试分区的精度为74.29%。

mdl-277

7 自动分类器

在前面我们采用不同模型对电信客户流失进行了建模。但是由于平衡和分区节点每次都会随机选择样本,所以无法直接比较模型的预测精度优劣。

SPSS Modeler给我们提供了可以自动选择模型及对模型进行组合共同进行分类的功能——自动分类器。

仍然采用前面例子的数据,前面的处理步骤相同,这里不再演示。

将“建模”选项卡下面的“自动分类器”节点添加到数据流,并与分区节点连接。

mdl-278

双击打开自动分类器,在专家页面,我们勾选所有的模型,其他保持默认,点击运行。

mdl-279

模型训练好后,将自动添加到数据流中。

mdl-280

双击打开训练好的模型,可以看出,自动分类器选择了贝叶斯网络、判别式和SVM三个模型的组合来对客户流失进行预测。

mdl-280-1

回到数据流编辑区域,将“输出”选项卡下面的“分析”节点添加到数据流,并与模型节点连接。

mdl-281

双击打开分析节点,设置好参数后运行,将给出自动分类器的估计精度。其中训练样本的精度为71.53%,测试分区的精度为76.11%。

mdl-282



获取案例数据,请关注微信公众号并回复:Modeler_dt8


Comments

Make a comment