2.3 数据探索

对数据进行理解以找出问题的影响因素,主要包括数据质量检查、描述性数据统计、探查各变量的意义及其相关关系、验证其中隐藏的信息和知识,对数据不理解,选择数据时容易出现覆盖不全、不完整、错误数据等问题,建模结果就会片面或不稳定,甚至出错。

对数据进行探查,以发现其主要特点,理解数据结构和各变量的意义,对数据形成直观认识,包括单变量的分布情况分析、多变量关系分析等,在探索过程中可以应用可视化技术从中看出某些规律,如散点图、箱图、直方图等。

本例中的数据为保险公司统计后的结果数据,是以家庭为单位将客户属性、购买保险的种类、金额等数据进行计算,以家庭房产数为例,统计整个家庭中房产的总数量,结果的取值范围为1~10,即最少1套,最多10套,而家庭中宗教情况是按照家庭成员信仰某一宗教的人数占总人数的比例来统计,在提供的数据中,其值范围为0~9,分别表示0、1%~10%、11%~23%、24%~36%、37%~49%、50%~62%、63%~75%、76%~88%、89%~99%、100%。不同的维度字段,其中数值代表的意义不同,需要根据维度的含义和意义进行具体分析,按照字段数值的类型划分,可将数值分成5个类别,分别是实际数值型、L0、L1、L2、L3、L4,其详细说明见表2.1。

表2.1 变量取值类型说明

总的记录数为5822条客户数据,每条记录包括86个变量,前43个变量为人口属性,是基于邮局系统中的门牌号来统计的每户家庭中各成员的信息,然后进行合并计算将结果作为最后属性的结果;后面的变量为产品购买属性,即之前购买过哪些保险;最后第86个字段是目标字段,表示是否购买移动房车险,取值为0或1,即分析客户是否会购买这一险种。

2.3.1 数据质量评估

样本数据的质量直接决定了最终模型的准确性,高质量的数据覆盖了模型需要的各种情况,且能够如实反映除模型训练之外的所有数据,但是这样的样本数据往往可遇不可求,在实际分析中受业务系统等限制,难以将数据收集完整,总会存在各种各样的问题,如出现样本不平衡,重要数据无法提供,存在错误数据。“垃圾进,垃圾出”,以此建立的模型必然无法应用,对于样本数据质量的评估显得尤其重要。

在本例中,由于给定的数据包括86维数据,如果对每一变量进行单独分析,耗时较长,为了快速查看各维度数据的基本特点,可以应用IBM SPSS Modeler中的数据审核结果对数据进行评估。Weka等分析软件中也具有此类功能,除此之外,还可以应用直方图、散点图等对某一字段进行自定义分布间隔来查看样本分布。

从数据的准确性、完整性、一致性等维度找出样本存在问题,图2.1是数据审核节点的结果,可以看到各自变量的类型和数据分布情况,以及极值、平均值、标准差、偏度、类别数(非连续型变量)、有效的记录数。其中大多数变量呈现正态分布,部分自变量为偏正态分布,还有部分变量分布没有规律,比较散乱。

图2.1 数据审核节点的结果

通常,正态分布的样本更符合预期,说明其样本数据分布较合理,覆盖了大多数的情况。当然,样本为偏正态分布时可以应用对数、倒数、指数等变换将其转换为正态分布,从而改进模型分类结果的准确性。

在“质量”选项卡中查看数据质量,如图2.2所示,可以看到完整字段和完整记录的比例,以及空值、字符型空值、离群值、极值的数量等,可以看到样本数据中没有上述异常数据,样本所有字段的数据完整度均为100%。

由于上述工具与业务无关,它们并不能检查业务数据存在的问题,所以在分析过程中需要利用业务知识查看数据的合法性和准确性,以及是否存在异常值,这些工作需要从业人员认真查看数据的实际取值,而非仅仅看通用的质量指标,可应用箱图等图形对有疑问的字段数据进行详细探查,具有一定编程或数据库使用经验的人员可以直接操作样本库查找异常记录,并按照实际需要决定是否将其剔除出训练集或对其进行修正。

图2.2 数据审核节点中数据质量结果

2.3.2 探索数据统计特性

描述性统计分析是用统计学的指标来描述数据特征的一种方法,其理论基础是数理统计学知识,主要包括数据的集中趋势、离散趋势、数据分布等特征,它是数据分析的第一步,也是进一步分析的基础。描述集中趋势的指标有均值、众数、中位数等,描述离散趋势的指标有极差、方差、标准差、四分位等,描述数据分布情况的指标有偏度、峰度等,前者是对数据分布对称性的描述,后者是对数据分布平峰或尖峰程度的描述,主要用于查看数据是否符合正态分布。

经过描述性统计分析之后,就可以有针对性地分析其中部分字段,分析样本中包含的某些特点,一方面可以验证数据的质量,此外也可以对样本数据有更加直观的感觉,同时作为模型结果的验证也非常有用。

目前很多分析软件或模块都有统计分析功能,例如在SPSS Modeler中可以从“节点选项板”中的“图形”选项卡中选择合适的图形节点对数据进行统计分析,而在Python中可以先使用NumPy和SciPy进行统计分析,然后用Matplotlib工具库来可视化显示结果。

本例中是为了查找投保移动房车险的家庭特征,由于移动房车险的类别为投(值为1)或不投(值为0)两种情况,所以可应用SPSS Modeler中的箱图来查看不同的变量对因变量的区分度,结果如图2.3所示。

图2.3 购买移动房车险家庭统计分析

图2.3 (续)

经过比较,发现购买房车险的家庭相较未购买此保险的家庭具有以下特征:

(1)购买力水平较高,平均收入较高。

(2)平均教育水平较高。

(3)投保火险的比例略高。

(4)家庭成员中已婚的比例较高。

(5)私人保险投保比例较高。

(6)公共社保的投保比例较低。

(7)农场主这类人群极少投移动房车险。

(8)高管层次的人群比例较高。

从这些特点中可以得出初步的结论,投保移动房车险的家庭其经济实力明显较强,教育程度较高,社会地位较高,保险意识和理念较强,基本上为中产阶级及以上人群,所以这个险种的目标人群可以初步进行定位。由于此结论相对模糊,所以还需要应用分析模型进行详细分析,对结果进行量化,形成可操作和可应用部署的模型算法。

2.3.3 数据降维

降维是一种常见的数据预处理手段,一般情况下,样本的字段数较多,特别是在大型系统中,由于各不同应用方向的信息系统记录的数据种类很多,经过综合之后就容易产生维度灾难,使得在数据分析过程中模型训练时间超长,且冗余字段也影响模型的准确性,易产生误差,所以,在大多数情况下要对字段进行降维处理,将对模型结果影响不大的字段剔除,或者将其进行变换后再输入至模型中。

在数据分析中可以使用分析软件附带的字段重要性评估模块来实现,也可以通过逻辑回归等模型进行评估,由模型给出显著性变量,如果变量对模型的贡献较少,可以考虑将其剔除。

本例中数据维数较多,需要进行降维处理,在SPSS Modeler中选择“特征选择”节点,如图2.4所示,目标设置为“移动房车险数量”,即家庭中投此保险的数量,输入变量选择其他所有字段,并使用分区字段,其他选项采用默认设置。

图2.4 数据特征选择

运行模型后的结果如图2.5所示,结果中按重要性依次列出36个重要变量,此外一个边际变量,其他为不重要变量,这些变量并非不起任何作用,而是对结果的影响较小,在后续模型选择过程中也可以将其作为输入变量进行分析。

不同的业务需求和分析目标中,字段重要性等级的分界值不同,由于当前场景中字段较多,边际分界值选为0.95比较合适,而自变量较少时可以适当降低分界值,或依据实际业务场景进行设置。

图2.5 特征选择结果