数据预处理

0.数据预处理概述

机器如果要学习,首先要获取外部数据,并将这些外部数据输入算法,进行不断地学习以提高自身性能。

也就是说,机器学习是从数据出发的,没有数据,机器也就没办法学到任何技能,所以数据是必须的。

在这里插入图片描述

1.数据清理

主要是将数据中缺失的值补充完整、消除噪声数据、识别或删除离群点并解决不一致性。主要达到的目标是:将数据格式标准化、异常数据清除、错误纠正、重复数据的清除。

1.1异常数据处理

异常数据也称离群点,指采集的数据中,个别值的数据明显偏离其余的观测值。

例如,测量小学五年级学生的身高数据,其中一部分数据如下:
( 1.35 , 1.40 , 1.42 , 1.38 , 1.43 , 1.40 ) (1.35,1.40,1.42,1.38,1.43,1.40) (1.351.401.421.381.431.40)
上面这组数据符合小学五年级学生的身高。

但是,如果数据中存在下面一组数据:
( 1.35 , 1.40 , 1.42 , 13.8 , 1.43 , 1.40 ) (1.35,1.40,1.42,13.8,1.43,1.40) (1.351.401.4213.81.431.40)
其中第4个数据为13.8,这个数据明显是不可能的,其原因或者是输入错误,或者是测量错误,因为这个数据远远偏离正常数据,因此需要度这类数据进行相应地处理。如果对这些数据不采用一定的方法消除,对结果将产生较坏的影响。

1.异常数据分析

在处理异常数据之前,首先需要对异常数据进行分析,常见的分析方法如下。

(1)使用统计量进行判断:可以对该数据计算出最大值、最小值、及平均值,来检查某个数据是否超出合理的范围。
例如,上面的身高数据如果远超出正常数据,那么就可以认为是异常数据。

统计量
从样本推断总体通常是通过统计量进行的。
例如, x 1 , x 2 , … , x n x_1,x_2,…,x_n x1,x2xn是从正态总体 N ( μ , 1 ) N(μ,1) N(μ,1中抽出的简单随机样本,其中均值 μ μ μ是未知的,为了对 μ μ μ作出推断,计算样本均值。可以证明,在一定意义下,样本中有关 μ μ μ的全部信息,因而能对 μ μ μ作出良好的推断。这里只依赖于样本 x 1 , x 2 , … , x n x_1,x_2,…,x_n x1,x2xn,是一个统计量。

(2)使用 3 σ 3\sigma 3σ原则:根据正态分布的定义,距离平均值 3 σ 3\sigma 3σ以外的数值出现属于小概率事件,此时,异常值可以看成那些数据和平均值的偏差超过3倍标准差的值。

2. 异常数据处理方法
当数据中存在异常数据时,应根据情况来确定是否需要对这些数据进行处理。经常使用的方法如下。
(1)删除有异常数据的记录:直接把存在的异常数据删除,不进行考虑。
(2)视为缺失值:将异常数据看成是缺失值,按照缺失值的处理方法进行相应地操作。
(3)平均值修正:使用前后两个观测值的平均值代替,或者使用整个数据集的平均值代替。
(4)不处理:将异常数据当成正常数据进行操作。

1.2 缺失值处理

数据缺失是指所记录的数据由于某些原因使得部分数据丢失,如,采集测量小学五年级学生的身高数据,其中一部分数据如下:
( 1.35 , 1.40 , 1.42 , ∗ ∗ ∗ , 1.43 , 1.40 ) (1.35,1.40,1.42,***,1.43,1.40) (1.351.401.421.431.40)
如上所示,第四名同学由于测量时没有到校,缺少该同学的数据。那么到统计全班同学的身高数据时,这名没有测量的同学的身高数据如何处理呢?是不考虑这名同学的数据,还是采用一些方法取近似数据呢?

上面介绍了数据缺失的情况,产生数据缺失的原因多种多样,主要有以下几个:
(1)部分信息因为不确定的原因暂时无法获取
(2)有些信息虽然记录了,但是由于保存不当,部分丢失。
(3)由于采集信息工作人员工作疏忽,漏记某些数据。

如果数据中存在缺失值,对机器学习的效果会产生一定的影响,特别是丢失的数据如果非常重要,那么机器学习的效果会很差,所得到的模型参数也不准确。因此,如果数据中存在缺失的情况,应采取措施进行处理。

处理缺失值的方法很多,如忽略存在缺失数据的记录、去掉包含缺失数据的属性、手工填写缺失值、使用默认值代替缺失值
使用属性平均值(中位数或众数)代替缺失值、使用同类样本平均值代替缺失值,预测最可能的值代替缺失值等。

其中,经常使用数据补插方法来代替缺失值,这些方法又可以细分为以下几种。
(1)最近邻补插:使用含有缺失值的样本附近的其他样本的数据替代;或者前后数据的平均值替代等。
(2)回归方法:对含有缺失值的属性,使用其他样本该属性的值建立拟合模型,然后使用该模型预测缺失值。
(3)插值法:和回归法类似,该方法使用已知数据建立合适的插值函数,缺失值使用该函数计算出近似值代替。常见的插值函数有拉格朗日插值法、牛顿插值法、分段插值法、样条插值法、Hermite插值法。

1.3 噪声数据处理

噪声无处不在,即使非常精密的仪器在测量时,也存在或大或小的噪声。同样,噪声对学习的影响也有大有小,这取决于噪声相比真实数据的比例,也取决于学习的精度要求。

2.数据集成

主要是将多个数据源中的数据进行整合并统一存储。

3. 数据变换

数据变换是指将数据转换或统一成适合机器学习的形式。主要是指通过平滑聚集,数据概化、规范化等方式将数据转化成适用于数据挖掘的形式。

就像人类学习一样,需要将采集的外部数据转换成可以接受的形式,如医院的老中医具有很高深医学知识,然而他们不会使用计算机,也不擅长将他们所掌握的知识写成书籍,这就需要有专门的人员和老中医一起生活工作,把他的经验总结成他人易于接受的书本知识,菜可以使用老中医的技术传承下去。

同样,外部的声音信息要转换成计算机可识别的信息,首先需要进行声电转换,再转换成计算机可识别的二进制数据。

由于实际过程中采集的各种数据,形式多种多样,格式也不一致,这些都需要进行一定的数据预处理 ,使他们符合机器学习的算法使用。

  1. 使用简单的数学函数对数据进行变换
    对采集的原始数据使用各种简单的数学函数进行变换,常见的函数包括平方、开方、取对数、差分运算等。
    当然,具体使用哪一种数学函数也取决于数据和应用的场景。例如,如果数据较大,可以取对数或开放将数据压缩变小;如果数据较小可以使用平方扩大数据。在时间序列分析中,经常使用对数变换或差分运算将非平稳序列转换为平稳序列。
  2. 归一化
    归一化又称为数据规范化,是在机器学习中数据预处理经常使用的方法,主要用于消除数据间的量纲影响。这是因为数据采集过程中,不同的数据值有可能差别很大,有时甚至具有不同的量纲,如比较工资收入,有的人每月工资上万元,有的人每月工资才几百元,如果这些数据不进行调整有可能影响数据分析的结果,因此需要进行归一化处理,将数据落入一个有限的范围,常见的归一化将数据调整到 [ 0 , 1 ] [0,1] [01] [ 1 , − 1 ] [1,-1] [11]范围内。
    (1)最小—最大归一化
    最小—最大归一化,也称为离差标准化,是对原始数据进行线性变换,使其值映射到 [ 0 , 1 ] [0,1] [01]之间,转换函数如下:
    X ′ = X − X m i n X m a x − X m i n X'=\frac{X-X_{min}}{X_{max}-X_{min}} X=XmaxXminXXmin
    式子中,X为需要归一化的数据; X m a x X_{max} Xmax为全体样本数据的最大值; X m i n X_{min} Xmin为全体样本数据的最小值。

这种方法的缺陷就是当有新数据加入时候,可能导致和的变化,需要重新定义。

(2)Z-score标准化方法
Z-score标准化方法,标准化方法也称为零–均值规范化方法,这种方法使用原始数据的均值(mean)和标准差(Standard Deviation)对数据实施标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转换函数为:
X ′ = X − μ σ X'=\frac{X-\mu}{\sigma} X=σXμ
式中,X是全体样本数据的均值; μ \mu μ是全体样本数据的标准差。
Z-score标准化归一化方式要求原始数据的分布可以近似为高斯分布,否则,归一化的效果会变得很糟糕。

4. 数据归约

数据挖掘时往往数据量非常大,因此在少量数据上进行挖掘分析就需要很长的时间,数据规约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量,它接近保持原数据地完整性,但数据量比原数据小得多,与非归约数据相比,在归约的数据上进行挖掘,所需的时间和内存资源更少,挖掘将更有效,并产生相同或几乎相同的分析结果。

常用维归约、数值归约等方法实现。

  1. 维归约
    也称为特征归约,是指通过减少属性特征的方式压缩数据量,通过移除不相关的属性,可以提高模型效率。维归约的方法很多。

例如,AIC准则可以通过选择最优模型选择属性;LASSO通过一定约束条件选择变量;分类树、随机森林通过分类效果影响大小筛选属性;小波变换、主成分分析通过把原数据变换或投影到较小的空间来降低维数。

  1. 数值归约
    也称样本归约,样本归约就是从数据集中选出一个有代表性的样本的子集。子集大小的确定要考虑计算成本、存储要求、估计量的精度以及其他一些与算法和数据特性有关的因素。

例如,参数方法中使用模型估计数据,就可以只存放模型参数代替存放实际数据,如回归模型和对数线性模型都可以用来进行参数化数据归约。对于非参数方法,可以使用直方图、聚类、抽样和数立方体聚集为方法。

本篇文章是龙马高新教育出版的《Python3数据分析与机器学习实战》的笔记,为了防止自己遗忘。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值