特征工程-数据预处理

为什么要做特征工程?

在工程实践中,我们得到的数据会存在有缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。数据预处理的常用流程为:去除唯一属性、处理缺失值、属性编码、数据标准化正则化、特征选择、主成分分析。

什么是特征工程

特征工程的处理流程为首先去掉无用特征(即相关性低的),接着去除冗余特征,如共线特征,并利用存在的特征,转换特征,内容中的特征以及其他数据源生成新特征,然后对特征进行转换(数值化,类别转换,归一化等),最后对特征进行处理(异常值,最大值,最小值和缺失值等),以符合模型的使用。

简单来说,特征工程的处理一般包括数据预处理,特征处理,特征选择等工作,而特征选择视情况而空,如果特征数量较多,则可以进行特征选择的操作。


数据预处理

数据清洗

去掉数据中的噪声,纠正不一致:对缺失值,异常值的检测和处理。

噪声数据

数据中存在着错误或异常,不能表现整体期望(偏离期望值),如:血压和身高为0就是明显的错误。

处理方法:

  • 回归法:用一个函数拟合数据来光滑数据,通常先对数据进行可视化,判断数据趋势及规律,再确定是否可以用回归法去噪。
  • 均值平滑法:对于具有序列特征的变量用邻近的若干数据的均值来替换原始数据的方法。
  • 利群点分析法:通过聚类等方法来检测离群点,并将其删除。
  • 小波过滤法(小波去噪):本质是一个函数逼近问题,即寻找从实际信号空间到小波函数空间的最佳映射。

缺失值

由于实际系统设计时存在的缺陷以及使用过程中的一些人为因素,数据记录可能会出现数据值的丢失或不确定。

缺失值检测:我们可以使用matlab中的isnan函数来检测缺失值,isnan函数返回一个逻辑数组,其中true元素表示缺失值,false元素表示非缺失值。

% 创建一个包含缺失值的数据集
data = [1, 2, NaN; 4, 5, 6; NaN, 8, 9];
% 使用 isnan 函数检测缺失值
missing_values = isnan(data);
% 显示缺失值的位置
disp(missing_values);

输出:

logical   
   0   0   1
   0   0   0
   1   0   0

处理方法:可分为三类,即删除数据,数据插补和不处理。

常见的插补方法见下表:

在这里插入图片描述

在这里插入图片描述

异常值

寻找异常值:

  • 正态分布
  • 箱型图

处理方法:有如下4种

  • 删除含有异常值的记录
  • 视为缺失值,利用缺失值的方法进行处理
  • 平均值修正:可用前后两个观测值的平均值修正该异常值
  • 不处理:直接在具有异常值的数据集上进行挖掘建模

数据集成

将多个数据源合并成一致的数据存储,构成一个完整的数据集,如数据仓库。

对于数据表的集成,主要有内接(理解为交集)和外接(理解为并集)两种方式。

数据规约(消减)

通过聚集,删除冗余属性或聚类等方法来压缩数据(即降维处理),这一部分数据是建模不会考虑的,相关性低的数据。目的是得到能够与原始数据集近似等效甚至比其更好但数据量却较少的数据集。

数据变换(转换)

因为统计分析时,多一个维度难度会增加,故当数据存在一定的差异时,将一种格式的数据转换成另一种格式的数据(如规范化)。

数据无量纲化

无量纲化使不同规格的数据转换到同一规格。常见的无量纲化方法有标准化和区间缩放法。标准化的前提是特征服从正态分布,标准化后,其转换成标准正态分布;区间缩放法利用了边界值信息,将特征的取值区间缩放到某个特点的范围,例如[0,1]等。

  • 标准化

    标准化需要计算特征的均值和标准差,公式表达为:

    1. z标准化(标准差标准化)

    在这里插入图片描述

    1. 0-1标准化(离差标准化)
      在这里插入图片描述
  • 归一化

    标准化和归一化的区别:简单来说,标准化是依照特征矩阵的处理数据,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。归一化的公式表达:

    在这里插入图片描述

    在这里插入图片描述

    归一化的类型可分为:

    1. 极大极小归一化:

      在这里插入图片描述

    1. 均值归一化

      在这里插入图片描述

    1. 非线性归一化指对原数据取对数

      非线性归一化没有把原数据各维特征缩放到某一范围内而是缩小各维特征的尺度(量纲)。平时在一些数据处理中,经常会把原始数据取对数后再做进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数之后不会改变数据的性质和相关关系,还可以压缩特征的尺度(量纲)。

    归一化总结

    特点:归一化会改变原始数据的数据分布,所以不能保留原始信息。

    作用:

    1. 加快训练速度:如迭代算法中目标函数的收敛速度
    2. 平衡各维特征权重中,避免数值尺度过大,过小的特征对模型的干扰

    缺陷:

    归一化处理数据后,虽然平衡了各维特征权重,但也改变了原始数据的数据分布,即破坏了数据结构。

  • 区间缩放法

    区间缩放法的思路有很多种,常见的一种为利用两个最值进行缩放,公式表达为:

    在这里插入图片描述

正则化

正则化的过程:是将每个样本缩放到单位范数(每个样本的范数为1),如果后面要使用如二次型(点积)或者其他核方法计算两个样本之间的相似性,防止过拟合这个方法会很有用。

主要思想:将样本的某个范数(如L1范数)缩放到位1,正则化的过程是针对单个样本的,对于每个样本将样本缩放到单位范数。

设数据集
在这里插入图片描述

对样本首先计算Lp范数:
在这里插入图片描述

正则化的结果为:每个属性值除以其Lp范数:
在这里插入图片描述

离散化

把连续性数据切分成若干段。

作用:算法需要;有效克服数据中隐藏的缺陷,使模型结果更加稳定;有利于对非线性关系进行诊断和描述。

语义转换

如:用{1,2,3,4}代替{非常好 好 一般 差}。

数学建模实战.以熵权法为例,具体的建模步骤如下(仅供参考):

在这里插入图片描述

特征选择

特征选择,是从原始特征集中选择出最相关,最有用的特征,以降低维度,提高泛化能力。当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。通常来说,从两个方面考虑来选择特征:

  • 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本没有差异,这个特征对于样本的区分并没有什么用。
  • 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优先选择。

根据特征选择的形式,特征选择有三种方法

  • Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者选择阈值的个数,选择特征。
  • Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
  • Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征点的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是通过训练来确定特征的优劣。

具体方法参见机器学习相关内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值