机器学习之数据预处理

机器学习之数据预处理

1. 为什么需要数据预处理?
原始数据来自于现实场景,常常有以下几个特征:脏、乱、差、缺。脏体现在原始数据里混杂许多噪声数据,乱体现在原始数据各维度量纲不同一。差体现在数据错误、出现不寻常不一致,这和脏相似。缺体现在原始数据的某些数据段值的缺失。

2. 数据预处理的方法。

归一化、标准化和中心化是数据预处理中重要的方法:
归一化和标准化的区别:归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,因区间放缩法是归一化的一种。标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩再进行平移

标准化和中心化的区别:标准化是原始分数减去平均数然后除以标准差,中心化是原始分数减去平均数。 所以一般流程为先中心化再标准化。

什么时候用归一化?什么时候用标准化?
  (1)如果对输出结果范围有要求,用归一化。
  (2)如果数据较为稳定,不存在极端的最大最小值,用归一化。
  (3)如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。

有些模型必须归一化或标准化,比如SVM,KNN、神经网络、PCA,这些模型的迭代求解过程中都会受数据量纲不同而影响巨大,而且往往仅仅归一化是不够的,还需要标准化。归一化适用于小数据场景,标准化适用于现如今的嘈杂大数据场景,所以建议优先使用标准化。

  • 差、缺——异常值处理、数据补全数据清洗
    差——异常值(离群点):

基于模型检测:比如用逻辑回归来进行拟合预测,异常值则是那些原理拟合结果的点。
基于距离:通过在对象之间定义临近性度量,异常对象是那些远离其它对象的对象,缺点是效率为O(N2), 并且基于所有样本来定一个阈值,没有处理密度不同数据样本,无法捕捉密度变化
基于密度: 当局部密度大于它的近邻时认为时离群点,捕捉密度变化,适用于密度分布不均匀的样本。缺点是效率为O(N2),和密度聚类算法有一样的问题,就是参数确定的问题。

异常值的处理方法:

  1. 删除异常值----明显看出是异常且数量较少可以直接删除
  2. 不处理—如果算法对异常值不敏感则可以不处理,但如果算法对异常值敏感,则最好不要用这种方法,如基于距离计算的一些算法,包括kmeans,knn之类的。
  3. 平均值替代----损失信息小,简单高效。
  4. 视为缺失值----可以按照处理缺失值的方法来处理

异常值的出现我觉得往往是由于两个原因,一是数据本身错误,噪声过大导致与其他样本分布不同。二是原数据本身的分布偏好,这个数据本身是真实可靠的,但由于与其他数据分布都完全不同,被认为是“异常值、离群点”

  • 缺——数据补全

常由两个思路,(1)通过其他维度的信息补全。(2)通过前后信息补全。

(1)是通过其他的维度来推理补全该缺省数据,跟数据中的其他样本关系巨大。(2)比如时序数据,我们可以用前后值的均值对其进行平均,来平滑数据。

主要方法有:(1)插补法主要有随机插补法,多重插补法,热平台插补法,以及拉格朗日插值法与牛顿插值法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值