数据挖掘:特征工程——特征处理与特征生成

数据挖掘:特征工程——特征处理与特征构建

在这里插入图片描述
这里贴一张网上特征工程的流程,供大家学习
在这里插入图片描述

一、什么是特征工程

特征工程:其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。。就是获取更好的训练数据。主要有两个方面:

  1. 获取更好的数据
  2. 使机器学习算法达到最优

二、特征工程处理的意义

有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

  1. 特征越好,灵活性越强
    只要特征选得好,即使是一般的模型(或算法)也能获得很好的性能,因为大多数模型(或算法)在好的数据特征下表现的性能都还不错。好特征的灵活性在于它允许你选择不复杂的模型,同时运行速度也更快,也更容易理解和维护。
  2. 特征越好,构建的模型越简单
    有了好的特征,即便你的参数不是最优的,你的模型性能也依然会表现的很nice,所以你就不需要花太多的时间去寻找最有参数,这大大的降低了模型的复杂度,使模型趋于简单。
  3. 特征越好,模型的性能越出色
    显然,这一点是毫无争议的,我们进行特征工程的最终目的就是提升模型的性能。

三、特征工程处理流程

特征工程处理流程主要包括以下四个方面特征处理,特征生成,特征提取,特征选择。本文主要介绍前两种方法。

四、特征处理与特征构建

在探索性数据分析中,我们已经对数据有了很深的了解,接下来要对数据中的特征进行处理和生成。

特征处理主要对数字,类别,顺序,时间序列,文本等类型数据进行处理,使得数据更适合模型的预测。
特征构建/衍生/生成:是根据对数据的了解,人为定出一些有意义的特征。这部分在之前探索性数据分析中有提到,其实进行EDA的目的就是为了更好地了解数据。

:特征处理中也包含了特征清洗这一步骤,跟之前的数据预处理是一样的。关于这些没有太过明确的定义,主要学习整个处理数据的流程即可,不用对概念中的处理方式太过纠结。

4.1 数字特征的处理和构建

4.1.1 数据标准化、归一化

在数据挖掘数据处理过程中,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。

数据标准化处理主要包括数据同趋化处理无量纲化处理两个方面。

  1. 数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。
  2. 数据无量纲化处理主要解决数据的可比性。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值(各特征)都处于同一个数量级别上,可以进行综合对比分析。

常见的数据标准化处理(这里先统称为数据标准化处理,其实数据标准化,归一化,中心化不一样)有以下四种,可以取消由于量纲不同、自身变异或者数值相差较大所引起的误差。

1.实现中心化和正态分布的Z-score
2.实现归一化的Max-Min
3.用于稀疏矩阵的MaxAbs
4.针对离群点的RobustScaler

sklearn的preprocessing提供了可以满足需求的方法。先用训练集训练标准化的类,然后用训练好的类分别转化训练集和测试集.

中心化:把数据整体移动到以0为中心点的位置。将数据减去这个数据集的平均值。
标准化:把整体的数据的中心移动到0,数据再除以一个数。在数据中心化之后,数据再除以数据集的标准差。
归一化:把数据的最小值移动到0,再除以数据集的最大值。对这个数据集的每一个数减去min,然后除以极差。
中心化、标准化、归一化定义

4.1.1.1 中心化与标准化(归一化)的处理意义

1.提升模型收敛速度
如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快(理解:也就是步长走多走少方向总是对的,不会走偏)。
在这里插入图片描述
2.提升模型精度
这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,如SVM,KNN等。上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。而基于树的模型,可以不进行标准化,例如随机森林,bagging 和 boosting等。以 C4.5 算法为例,决策树在分裂结点时候主要依据数据集 D 关于特征 x 的信息增益比,而信息增益比和特征是否经过归一化是无关的归一化不会改变样本在特征 x 上的信息增益。

在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。

从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
在这里插入图片描述
3. 深度学习中数据归一化可以防止模型梯度爆炸

通过中心化和标准化处理,最终得到均值为0,标准差为1的服从标准正态分布的数据。可以取消由于量纲不同、自身变异或者数值相差较大所引起的误差。


在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价的因素(特征)有房子面积、卧室数量等,很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理

下图中以二维数据为例:左图表示的是原始数据;中间的是中心化后的数据,数据被移动大原点周围;右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)。
其实,在不同的问题中,中心化和标准化有着不同的意义,比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。
在这里插入图片描述
中心化 -PCA示例
下面两幅图是数据做中心化(centering)前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0,0)

在这里插入图片描述
在做PCA时,我们需要找出矩阵的特征向量,也就是主成分(PC)。比如说找到的第一个特征向量是a = [1, 2],a在坐标平面上就是从原点出发到点 (1,2)的一个向量。
如果没有对数据做中心化,那算出来的第一主成分的方向可能就不是一个可以“描述”(或者说“概括”)数据的方向。
黑色线就是第一主成分的方向。只有中心化数据之后,计算得到的方向才能比较好的“概括”原来的数据。
在这里插入图片描述

中心化与标准化(归一化)的处理意义

4.1.1.2 Z-Score

Z-Score:即标准化。它是基于原始数据的均值和标准差,通过减去均值然后除以方差(或标准差),这种数据标准化方法经过处理后数据,符合标准正态分布,即均值为0,标准差为1。转化函数为:x =(x - 𝜇)/𝜎

  • 使用最多,处理后的数据均值为0,标准差为1.
  • 其使用前提最好是特征值服从正态分布
  • 15
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值