在上一篇文章中,我们通过使用二项Logistic回归分析方向对客户流失进行预测。在进行“数据准备”的过程中,我们使用了两个节点,分别为特征选择和数据审核。在数据审核节点中,我们查看了原数据的分布形式,并对数据中的缺失值进行了指定,指定为此字段中的平均值。今天,我们将以数据审核节点为核心,进行较深入的介绍。通过数据审核,我们能有效地解决极值、离群值和缺失值,是数据准备中不可或缺的一部。大家在日后学习Clementine时,一定要注意数据审核这一步,不管数据质量好还是坏。
下面,我们先从整体上看一下工作流。
首先,我们通过源——Spss文件导入我们需要的数据。然后添加“类型”节点,本次数据挖掘的目的,仍然同上一篇文章一样,是为了建立起针对目标变量Churn的数学模型,故在“类型”节点中除了读取数值外,还应该把字段Churn的字段方向设置为输出,把其它字段的字段方向设置为输入,然后查看各字段数据类型是否合理。在字段类型中,“范围”是最容易识别的,当取值为0和1时,我们知道此字段并不表征范围,而往往表征的是事物的两个属性,如好和坏,此时我们将其定义为“标志”,但性别除外,性别的类型选择“集”更为合适。点击确定。
然后我们就可以进行数据审核了。在“类型”节点上添加“数据审核”节点,然后打开“设置”面板。在几乎所有的模型节点中都有这样一个选择字段的面板,一般情况下我们都勾选默认值,这样就能把前面所有的字段导入到模型中,如果我们想有选择地导入字段,就可以进行自定义。然后点击选择“质量面板”,在“质量面板”中我们继续保持对缺失值、极值和离群值的监测。在缺乏值监测中,我们将所有的选项都勾选上;在离群值和极值监测中,我们使用标准差 法。其中,当标准差大于3时,确定其为离群值,当标准差大于5时,确定其为极值。当然我们也可以使用四分位数法来确定离群值和极值。点击确定。
紧接站,我们得到了对此数据集进行数据审核的结果。点击执行后,系统生成了数据审核的浏览器,选择“审核面板”,在此面板中,我们看到系统对所有字段描述性统计量进行统计的结果。其中描述性统计量已经用红框标出,当然我们也可以通过右上角的工具来自定义要选择的描述怀统计量。左侧第二列展示了数据的图形,我们发现“集”一般表示为条形图,“范围”数据一般表示为直方图。
双击图形,就可以生成此数据图形的面板。以字段Logcard为例,下图为我们双击Logcard缩略图后得到的图形,我们发现此数据被正态曲线拟合的相当好。由于在“类型”节点中我们把Churn字段设置为输出字段,因此所有的预测变量都将与Churn交叠,产生图形。右上角明确地表示,此图形反应的是Logcard与Churn的关系,其中绿色的直方图部分表示纪录Churn字段取值为0,而其余部分Churn取值为1.
为了更为深入地理解数据审核对数据的挖掘作用,我们查看一下Logcard的正态曲线的峰度和偏度。偏度和峰度是正态分布的两个重要参数指标,偏度指的是表征数据左右偏离程度的参数指标,如果偏度大于0,则称之为右偏或正偏,尾位于右侧,反之,称为左偏或负偏,长尾在左侧;峰度是表征数据陡缓程度的参数指标,当峰度为0时,其陡缓程度与标准正态分布(期望=0,方差=1)一致,当峰度大于0时,正态分布比标准正态分布更陡,反之则更缓。图中,我们对偏度系数和峰度系数进行了标记,我们发现二者非常接近零,这说明此数据的Logcard数据拟合的正态曲线与标准正态曲线非常接近,只是偏左,偏陡而已。
好。我们继续点击查看“质量面板”。质量面板为我们提供了关于缺失值、离群值和极值的分析情况。我们可以对缺失值进行处理,处理方法与上一遍文章中介绍的一样。点击“缺失插补”,我们选择用系列的平均值替代缺失值,然后生成缺失值超节点。
将新生成的缺失值超节点添加到“类型”节点上,这样我们就能得到一个经过缺失值处理的数据了。那么,究竟什么是超节点呢?右击缺失值超节点,选择“放大”,我们发现下图。一个超节点含有所有字段填充的过程,每一个字段都会对应于一个C&RT模型,此C&RT模型通过分析此字段的数据,得到应该取代缺失值的预测值,然后导入流中。
可见,经过填充缺失值的数据可以导出为缺失值超节点,那我们能不能把含有缺失值的纪录或字段删除呢?当然可以。在“生成”选项中,Clementine为我们提供了至少三种可以使用的生成方式,分别为:生成缺失值超节点、过滤节点和选择节点。其中过滤节点针对字段操作而选择节点针对纪录操作,下面以过滤节点为例介绍。在下图中,我们设定新生成的节点包含质量百分比高于50%的字段,当然这个比例很尴尬,我们只是以此为例而已。
上面我们对缺失值进行了三种方式的处理,对离群值和极值,也可以进行相应的操作,此处略去不讲。
那么,我们这样填充缺失值、离群值或极值的目的是为什么呢?为的是对数据进行变换,数据变换是一个相当重要的步骤,关于变换我们会在以后的文章中介绍。
进行完数据审核后,就可以生成数据了。当然,你还可以对数据进一步地处理,可以添加如“异常检测”和“特征选择”两节点进行处理,此处不再详细介绍。