数据预处理的基本步骤
我们拿到的数据,通常是不“完美”的,并不能够直接用来分析和建模。所以通常我们需要先进行数据预处理。预处理 一般包括如下几个步骤
第一步:数据集成
数据集成,也就是对不同数据源的数据进行整合。数据收集的过程,往往不是单一来源单一阶段的。因此需要把不同来 源的数据进行整合,形成一个综合的数据集。在这个过程中,需要注意不同来源的数据名称、长度、格式、编码规则以 及含义都可能存在差异,也可能会存在重复或者矛盾的数据。 因此在集成过程中需要对合并后的数据,进行验证,避免出现同名异义,或者异名同义,以及单位不统一等情况。对于 重复数据,也要进行删除和合并,避免冗余。
第二步:数据探索
拿到一个数据集,我们首先要进行数据探索。这是为了更好地理解数据集,掌握它的基本特征,为后面的操作打下基础。 一般我们会通过集中趋势和离散程度两类指标来探索一个数据集中的单一变量。 集中趋势,我们一般可以通过平均值、中位数、众数来衡量。 离散程度,我们一般则可以用极差、方差、标准差、分位数来评估。 另外,除了用数据指标,我们也可以通过图表的形式来了解一个数据集。比如箱形图(Box-plot),又称为盒须图,就是 一种经常用来表示数据集分布情况的图表。
另外,我们也可以通过图表的形式来对数据集合中两个字段的关系有一个初步的概念。比如Q-Q图和散点图。 Q-Q图(Q-Q Plot)是用X-Y坐标轴的形式把两个变量分位数放在一起进行比较。如果两个变量分布相似,那么图形落在对角线。如 果两个维度分布相关,那么图形会近似呈直线形状。Q-Q图也可以用来判断样本分布是否为正态分布。
散点图(Scatter Plot),也是用X-Y坐标轴的形式来表示两个变量数据的关系。把(X,Y)的取值一一对应表示在坐标轴中,会形成一些 散落的点。根据点的形状,我们就可以对两个变量间的关系,有一个基本的了解。
第三步:数据交换
在进行了基本的了解后,我们还需要把集合中的数据通过一定形式的变换,转换成适合分析和建模的形式。主要的数 据变换就是数据标准化。 数据标准化,指的是把数据按照一定的规则,进行缩放,使其落在一定的区间范围内。不同变量由于性质不同,通常 具有不同的量纲和数量级。标准化,可以有效地解决变量间取值范围差异过大的情况。避免后期建模中,由于量纲差 异,带来信息遗失。同时由于去除了数据的单位限制,将其转化为无量纲的纯数值,也方便了不同变量间的比较和计 算。 -2,32,100,59,48→0.02,0.32,1,0.59,0.48
第四步:数据归约
在实际项目中,我们遇到的数据集可能比较大,这个时候除非应用大数据挖掘技术,在做一般的分析和建模时,我们都需要对数据进 行归约,也就是简化。当然,简化的前提是尽可能少地减少信息损失和保证最终效果。 另一种需要用到数据归约的情况是,数据集的变量数较多,而对应的样本数相对比较少。这个时候,样本的数量不足以支持这么多变 量的研究,过多的变量数也会使得一些模型不再适用。那么这个时候,我们也需要对变量进行归约。 通常,我们可以采用维度归约和数值归约两种方法。
第四步:数据归约 —— 两种方法
维度归约
主要是减少变量,或者说维度属性的个数。常用的方法有主成分分析、变量聚类等。
数值归约
是通过选择可以替代的、较小的数据的形式,来达到减少数据量的目的。一般可以分为有参数法和无参数法。有参数法的数值归约, 最后只要存储参数即可,不需要额外存储数据。常用的有参数法是线性回归和多元回归。而无参数法一般不使用参数,或者模型的方 式来存储数据,常用的方法有直方图、抽样和聚类。数据分箱也可以有效减少数据的数量。
二、数据清洗
1.填补遗漏的数据值
在数据收集的过程中,我们难免会遇到数据缺失的情况。对于缺失的数据,一般不建议直接删除,通常会采用常数、中位数/众数、随机 数或者模型的方法进行填补。
常数法
最简单,但是相对来说也比较主观,可能带来无效信息。因此使用较少,通常用于标记缺失值。
中位数或者众数 都是描述数据集的集中趋势的指标。因此填补的数值也比较接近数据集的共性特征,因此填补后的数据集集中趋势会更加明显,结果也 会偏向乐观。因此通常应用于有少量缺失值的情况。
随机数方法
避免了主观判断,分布也更加自然。适用于有大量缺失值的情况。但是对生成随机值的方法依赖性比较强,如果选择不恰当,可能生成 大量的无意义数据。
模型法
相对来说,取值最合理的一种方法。但是由于计算复杂,因此除非对数据的质量特别敏感,一般很少采用。
2.平滑有噪声数据
在一些变量中可能存在随机的错误或者误差,这个时候我们需要平滑这些有噪声的数据,避免给最后结果造成影响。一般平滑有噪声数 据的方法有分箱法、聚类法,也可以通过移动平均的方法来进行过滤平滑。
3.识别或去除异常值 变量中也可能存在异常值。我们可以通过数值或者画图的方法来进行判断。对于单一变量,我们可以通过均值、分位数、对称分布的经 验法则或者切比雪夫不等式来进行判断。 如果需要识别两个或者以上变量组合是否存在异常值,我们则可以采用聚类或者散点图的方式来进行。 但是需要注意的是,异常值并不总是需要去除的。因为有时候异常值也代表了数据集的特征。具体是否需要去除或者调整,要根据项目 的实际情况和使用的模型要求来进行判断。
4.解决不一致问题
在数据集成部分,我们也提到过,来源不同的数据,名称、定义、长度、单位等都有可能存在不同,在使用前,我们需要对这些数据进 行检查和统一。避免由于不一致带来结果的误差。
5.查重
有些时候,数据集合中可能会存在重复的数据。因此在使用数据集前,我们也要进行查重,避免造成信息的干扰。
三、例题精讲1.关于Z-score标准化说法正确的是( )。
A.变换后变量的取值范围为[-1,1]
B.变换后变量的取值范围为(-1,1)
C.消除了量纲的影响
D.改变了数据的偏度
答案:C 解析:变换后,变量的取值范围仍然是(-∞, ∞)。新生成的变量均值为0,方差为1。
2.下面那些方法可以用于异常值的识别( )。 A.分位数判断
B.转化为Z-score判断
C.聚类
D.计算峰度
答案:ABC 分析:异常值的判断可以使用均值、分位数来判断,可以使用对称分布的经验法 则或切比雪夫不等式,还可以使用聚类。
,