数据预处理(方法总结)

数据预处理(方法总结)

转自-https://www.cnblogs.com/sherial/archive/2018/03/07/8522405.html

一、概述

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

 

二、数据预处理方法

1. 去除唯一属性

唯一属性通常是一些id属性,这些属性并不能刻画样本自身的分布规律,所以简单地删除这些属性即可。

2. 处理缺失值

缺失值处理的三种方法:直接使用含有缺失值的特征;删除含有缺失值的特征(该方法在包含缺失值的属性含有大量缺失值而仅仅包含极少量有效值时是有效的);缺失值补全。

常见的缺失值补全方法:均值插补、同类均值插补、建模预测、高维映射、多重插补、极大似然估计、压缩感知和矩阵补全。

(1)均值插补

如果样本属性的距离是可度量的,则使用该属性有效值的平均值来插补缺失的值;

如果的距离是不可度量的,则使用该属性有效值的众数来插补缺失的值。如果使用众数插补,出现数据倾斜会造成什么影响?

(2)同类均值插补

首先将样本进行分类,然后以该类中样本的均值来插补缺失值。

(3)建模预测

将缺失的属性作为预测目标来预测,将数据集按照是否含有特定属性的缺失值分为两类,利用现有的机器学习算法对待预测数据集的缺失值进行预测。

该方法的根本的缺陷是如果其他属性和缺失属性无关,则预测的结果毫无意义;但是若预测结果相当准确,则说明这个缺失属性是没必要纳入数据集中的一般的情况是介于两者之间。

(4)高维映射

将属性映射到高维空间,采用独热码编码(one-hot)技术。将包含K个离散取值范围的属性值扩展为K+1个属性值,若该属性值缺失,则扩展后的第K+1个属性值置为1。

这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。这样做的好处是完整保留了原始数据的全部信息、不用考虑缺失值;缺点是计算量大大提升,且只有在样本量非常大的时候效果才好。

暂时未理解?

(5)多重插补(MultipleImputation,MI)

多重插补认为待插补的值是随机的,实践上通常是估计出待插补的值,再加上不同的噪声,形成多组可选插补值,根据某种选择依据,选取最合适的插补值。

(6)压缩感知和矩阵补全

(7)手动插补

插补处理只是将未知值补以我们的主观估计值,不一定完全符合客观事实。在许多情况下,根据对所在领域的理解,手动对缺失值进行插补的效果会更好。

3. 特征编码

(1)特征二元化

特征二元化的过程是将数值型的属性转换为布尔值的属性,设定一个阈值作为划分属性值为0和1的分隔点。

(2)独热编码(One-HotEncoding)

独热编码采用N位状态寄存器来对N个可能的取值进行编码,每个状态都由独立的寄存器来表示,并且在任意时刻只有其中一位有效。

独热编码的优点:能够处理非数值属性;在一定程度上扩充了特征;编码后的属性是稀疏的,存在大量的零元分量。

4. 数据标准化、正则化

数据标准化

数据标准化是将样本的属性缩放到某个指定的范围。

数据标准化的原因:

某些算法要求样本具有零均值和单位方差;

需要消除样本不同属性具有不同量级时的影响:①数量级的差异将导致量级较大的属性占据主导地位;②数量级的差异将导致迭代收敛速度减慢;③依赖于样本距离的算法对于数据的数量级非常敏感。

min-max标准化(归一化):对于每个属性,设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:新数据=(原数据 - 最小值)/(最大值 - 最小值)

z-score标准化(规范化):基于原始数据的均值(mean)和标准差(standarddeviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。新数据=(原数据- 均值)/ 标准差

均值和标准差都是在样本集上定义的,而不是在单个样本上定义的。标准化是针对某个属性的,需要用到所有样本在该属性上的值。

正则化

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

设数据集。对样本首先计算Lp范数:

正则化后的结果为:每个属性值除以其Lp范数:

参考http://blog.youkuaiyun.com/pipisorry/article/details/52247379

5. 特征选择(降维)

从给定的特征集合中选出相关特征子集的过程称为特征选择。

进行特征选择的两个主要原因是:

减轻维数灾难问题;

降低学习任务的难度。

进行特征选择必须确保不丢失重要特征。

常见的特征选择类型分为三类:过滤式(filter)、包裹式(wrapper)、嵌入式(embedding)。

过滤式选择:该方法先对数据集进行特征选择,然后再训练学习器。特征选择过程与后续学习器无关。Relief是一种著名的过滤式特征选择方法。

包裹式选择:该方法直接把最终将要使用的学习器的性能作为特征子集的评价原则。其优点是直接针对特定学习器进行优化,因此通常包裹式特征选择比过滤式特征选择更好,缺点是由于特征选择过程需要多次训练学习器,故计算开销要比过滤式特征选择要大得多。

嵌入式选择

常见的降维方法:SVD、PCA、LDA

SVD参考ttp://blog.youkuaiyun.com/u012380663/article/details/36629951

PCA参考http://blog.youkuaiyun.com/u014772862/article/details/52335970

LAD参考https://www.cnblogs.com/pinard/p/6244265.html

6. 稀疏表示和字典学习

字典学习:学习一个字典,通过该字典将样本转化为合适的稀疏表示形式。

稀疏编码:获取样本的稀疏表达。

 

转至http://blog.youkuaiyun.com/marsjhao/article/details/70213749,有修改

### 图像深度学习中的数据预处理方法与技术 在深度学习中,图像数据预处理是一个至关重要的步骤,它直接影响到模型的性能和训练效率。以下是一些常见的图像深度学习数据预处理方法和技术: #### 1. 数据标准化 数据标准化是将输入数据转换为具有零均值和单位方差的过程。这种方法特别适用于需要使用距离度量或协方差计算的算法[^3]。通过标准化,可以减少不同特征之间的量纲差异,从而提高模型的收敛速度和稳定性。 ```python import numpy as np def z_score_standardization(data): mean = np.mean(data, axis=0) std = np.std(data, axis=0) return (data - mean) / std ``` #### 2. 图像白化 图像白化是一种高级的数据预处理技术,旨在通过对输入图像进行线性变换来消除冗余信息[^1]。白化后的图像通常具有更小的相关性和更高的独立性,这有助于加速模型的训练过程。 ```python def whiten_image(X): cov = np.cov(X, rowvar=False) U, S, V = np.linalg.svd(cov) X_whitened = np.dot(U, np.dot(np.diag(1.0 / np.sqrt(S)), np.dot(U.T, X.T))).T return X_whitened ``` #### 3. 图像增强 图像增强技术可以通过增加数据多样性来提高模型的泛化能力。常见的图像增强方法包括旋转、缩放、翻转、裁剪和颜色抖动等[^4]。这些操作可以帮助模型更好地适应不同的场景和光照条件。 ```python from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator( rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest' ) ``` #### 4. 数据归一化 数据归一化是将像素值限制在一个特定范围内的过程,例如[0, 1]或[-1, 1]。对于许多深度学习框架,这种归一化是非常必要的,因为它可以加速模型的收敛并避免数值不稳定问题[^3]。 ```python def normalize_image(image): return image / 255.0 ``` #### 5. 处理噪声和缺失值 在实际应用中,图像数据可能包含噪声或缺失值。为了提高模型的鲁棒性,可以通过平滑滤波器或插值方法来处理这些问题[^2]。 ```python from scipy.ndimage import gaussian_filter def smooth_image(image, sigma=1.0): return gaussian_filter(image, sigma=sigma) ``` ### 总结 图像深度学习中的数据预处理方法和技术多种多样,具体选择取决于任务需求和数据特性。标准化、白化、增强、归一化以及噪声处理都是常用的技术手段,它们共同作用以提升模型的性能和稳定性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值