-
在深度学习中数据预处理常用方法
2018-08-23 22:11:37本文主要讲深度学习中的数据预处理方法,主要参考NG的UFLDL教程以及其他一些博客和论文进行总结,UFLDL数据预处理教程链接为 http://deeplearning.stanford.edu/wiki/index.php/数据预处理 数据预处理在众多深度...本文主要讲深度学习中的数据预处理方法,主要参考NG的UFLDL教程以及其他一些博客和论文进行总结,UFLDL数据预处理教程链接为
http://deeplearning.stanford.edu/wiki/index.php/数据预处理
数据预处理在众多深度学习算法中都起着重要作用,通常所讲的预处理包括数据归一化和白化。以下分别对数据归一化和白化进行说明。
数据归一化。数据归一化(Data Normalization)是数据预处理的第一步,有很多方法,如常见的高斯归一化、最大最小值归一化等,而在深度学习中常用的是以下几种:
(1)简单缩放 (Simple Rescaling)
在简单缩放中,我们的目的是通过对数据的每一个维度的值进行重新调节(这些维度可能是相互独立的),使得最终的数据向量落在 [0,1]或[ − 1,1] 的区间内(根据数据情况而定),以满足应用需求。例如,在sparse auto-encoder中,由于网络的输出和输入是近似相等的,而隐含层和输出层神经元通常采用的是sigmoid函数作为激活函数,该函数值域为[0,1],因此为了保证输出等于输入,通常需要将输入缩放至[0,1]这个范围,然后再进行训练。
(2)逐样本均值消减(Per-example mean subtraction)
逐样本均值消减,也称为移除直流分量(remove DC),当数据时平稳的(stationary),即数据每一个维度的统计都服从相同分布,可以考虑在每个样本上减去数据的统计平均值(逐样本计算,即分别计算各样本的均值,然后各样本减去其对应的均值)。自然图像具有平稳的性质,所以这种归一化方法也是比较常用的。对自然图像应用PCA算法时候,通常也会这样处理,参考以下链接:
http://deeplearning.stanford.edu/wiki/index.php/PCA
注意:通常这种方法只用于灰度图像,因为彩色图像不同色彩通道中的像素并不都存在平稳特性。此外,对于教程这部分内容还有点疑惑,“对图像数据应用PCA算法”这部分内容上面讲的是标准的PCA处理方法(各维度去均值),而下面给的公式却是单独处理每个图像块(逐样本去均值)。
(3)特征标准化(Feature Standardization)
特征标准化的目的是使数据集中所有特征都具有零均值和单位方差,即数据的每一个维度具有零均值和单位方差,这也是比较常见的一种归一化方法,比如使用SVM时候也要进行类似处理。在实际应用中,特征标准化的具体做法是:首先计算每一个维度上数据的均值(使用全体数据计算),之后在每一个维度上都减去该均值。下一步便是在数据的每一维度上除以该维度上数据的标准差。
例如X是一个训练样本集,包含m个训练样本且每个训练样本的维数是n。应用特征标准化时先计算各行数据的均值
,然后样本集X减去该均值得到零均值化后的样本集XX。之后XX的各行除以该行数据的标准差就会得到特征标准化后的样本。
总结:以上有三种方法,具体预处理时候到底该如何选择预处理方法呢?一般可以根据自己的需要来选择(或者说数据类型)。
若图像是自然灰度图像,由于灰度图像具有平稳特性,通常可选择第二种方法,即移除直流分量(逐样本移除直流分量后还可以继续逐样本除以各样本的标准差,不过这一步通常不做,因为其平稳特性)。
若图像是自然彩色图像,由于色彩通道间并不存在平稳特性,因此通常对数据进行特征缩放(使像素值位于 [0,1] 区间)。然后再进行PCA/ZCA白化等操作,在白化前需进行特征分量均值归零(即使特征的每一个维度具有零均值,通常不需要除以各维度数据的标准差,因为各维度标准差很接近,可以对上文中的X进行验证)。在UFLDL教程的练习中(linear decoder)采用的是这种方法,而在有些论文中,也会采用第二种方法(逐样本去均值和除以标准差),如论文“An Analysis of Single-Layer Networks in Unsupervised Feature Learning”,这样在后续白化处理时是不是还需要再对各维度进行零均值化(因为计算协方差矩阵时需要这一步),论文里这点没说明。因此应用时建议根据练习中的方法来处理。
若图像是遥感图像,可采用linear decoder这个练习中的处理方法。
PCA/ZCA(zero-phase component analysis)白化。数据归一化后的一个处理步骤就是数据白化。关于白化的基本知识可参考教程:
http://deeplearning.stanford.edu/wiki/index.php/Whitening
在进行 PCA/ZCA 白化时,首先使特征零均值化是很有必要的, 这一步需要在计算协方差矩阵前完成(计算协方差矩阵前的必要处理)。
总结:其实数据归一化和白化可以合并成一部分,即数据白化。因为白化前肯定需要进行一些必要的数据归一化,比如计算协方差矩阵前需进行特征零均值化操作。
此外关于预处理这部分内容,还可以参考博客:
http://www.cnblogs.com/tornadomeet/archive/2013/04/12/3016319.html
本文转载自https://blog.csdn.net/qq_23981335/article/details/60605225
-
数据预处理
2019-01-26 23:29:29数据预处理的主要内容包括:数据清洗,数据集成,数据变换,数据规约。 数据清洗 缺失值处理 分为3类:删除记录,数据插补,不处理 常用的插补方法有以下: 插补方法 方法描述 均值/中位数/...数据预处理的主要内容包括:数据清洗,数据集成,数据变换,数据规约。
1. 数据清洗
缺失值处理
分为3类:删除记录,数据插补,不处理
常用的插补方法有以下:插补方法 方法描述 均值/中位数/众数 根据属性值的类型,用该属性取值的平均数/中位数/众数进行插补 使用固定值 将缺失的属性用一个常量替换 最近临插补 在记录中找到与缺失样本最接近的样本的该属性值插补 回归方法 对带有缺失值的变量,根据已有数据和与其相关的其他变量数据建立拟合模型来预测缺失的属性值 插值法 利用已知点建立合适的插值函数y,未知值由对应点x求出的函数值y近似代替 插值法有以下:
插值法 方法描述 拉格朗日插值法 拉格朗如插值法(搜狗百科) 牛顿插值法 牛顿插值法 Hermite插值法 Hermite插值法 分段插值法 分段插值法 样条插值法 样条插值法 异常值处理
异常值是否剔除,视具体情况定,因为有些异常值可能蕴含着有用的信息。
异常值处理常用方法:异常值处理方法 方法描述 删除含有异常值的记录 直接将记录删除 视为缺失值 利用缺失值处理的方法处理 平均值修正 用前后两个观测值的平均值修正该异常值 不处理 分析异常数据出现的原因,再判断是否该舍弃,如果是正确的数据,直接在此数据集上进行建模 2.数据集成
实体识别
从不同数据源识别出现实世界的实体:同名异义,异名同义,单位不统一。
冗余属性识别
同一属性多次出现,同一属性命名不一致导致重复。可以用相关分析检测,用相关系数度量一个属性在多大程度上蕴含另一个属性。
3.数据变换
数据变换主要是对数据进行规范化处理
简单函数变换
对原始数据进行数学函数变换,平方,开方,取对数(进行压缩),差分运算等。将不具有正态分布的数据变换成具有正态分布的数据。
在时间序列分析中,有时简单的对数变换或者差分运算可以将非平稳序列转换为平稳序列。规范化(归一化)
数据规范对于基于距离的挖掘算法尤其重要
(1)最小-最大规范化,也称离差标准化
(2)零-均值规范化,也称标准差标准化,经过处理的数据的均值为0,标准差为1
(3)小数定标规范化,通过移动属性值的小数位数连续属性离散化
(1)离散化的过程:涉及两个子任务:确定分类数以及如何将连续属性值映射到这些分类值。
(2)常用的离散化方法:连续数据离散化属性构造
利用已有的属性构造出新的属性,并加入到现有的属性集合中
小波变换
小波变换是一种新型数据分析工具,是信号分析手段,在信号处理,图像处理,语音出库,模糊识别,量子物理等领域广泛应用
小波变换
小波变换具有多分辨率的特点,在时域和频域都具有表征信号局部特征的能力,通过伸缩和平移等运算过程对信号进行多尺度聚焦分析,提供一种非平稳信号的时频分析手段,可以有粗及细的逐步观察信号,从中提取有用的信息。4.数据规约
属性规约
属性规约通过属性合并来创建新的属性维数,目标是寻找出最小的属性子集并确保新数据子集的概率分布尽可能的接近原来数据集的概率分布。
属性规约常用方法:属性规约方法 方法描述 合并属性 将一些旧的属性合并为新的属性 逐步向前选择 由空属性开始,每次从原来属性集合中选择一个当前最优的属性添加 逐步向后删除 每次选择一个最差的属性删除 决策树归纳 利用决策树的归纳方法对初始数据进行分类归纳学习,得到一个初始决策树,没有出现在决策树上的属性认为是无关的因此删除 主成分分析 用较少的变量去解释原始数据中的大部分变量,将很多相关性很高的变量转化为彼此相互独立的变量 主成分分析方法-搜狗百科 详解协方差矩阵的求法 主成分分析原理详解 在python中,主成分分析函数位于Scikit-Learn下:
sklearn.decomposition.PCA(n_components = None, copy = True, whiten = False)
参数说明:
(1)n_components
意义:PCA算法中所要保留的主成分个数n,保留下来的特征个数n。
类型:int或者string,缺省时默认None,所有成分都保留。比如:
n_components=1,将把原始数据降到一个维度
n_components=‘mle’,将自动选取特征个数n,使得满足所要求的方差百分比。(2)copy
类型:bool,True或者False,默认为True。
意义:表示是否在运行算法时,将原有训练数据复制一份。(3)whiten
类型:bool,默认为False。
意义:白化,使得每个特征具有相同的方差。数值规约
(1)有参数方法:使用一个模型来评估数据,只要存放参数,不需要存放实际数据,例如:线性回归,多元回归,对数线性模型。
(2)无参数方法:需要存放实际数据,例如:直方图,聚类,抽样。
-
常用去除离群值的算法!
2019-07-23 16:57:41数据预处理的方法主要包括去极值、标准化、中性化。那么这里介绍以下常用的去离群值的方法,所谓离群值就是异常值,这个和极值其实并不一样。常用的剔除离群值的方法有MAD、、百分位法。参考资料:数据预处理(上)...1.引言:
数据预处理的方法主要包括去极值、标准化、中性化。那么这里介绍以下常用的去离群值的方法,所谓离群值就是异常值,这个和极值其实并不一样。常用的剔除离群值的方法有MAD、
、百分位法。参考资料:数据预处理(上)之离群值处理、标准化、数据预处理(下)之中性化
2.MAD算法
MAD,即median absolute deviation,可译为绝对中位值偏差。其大致思想是通过判断每一个元素与中位值的偏差是否处于合理的范围内来判断该元素是否为离群值。具体方法如下:
(1)计算所有元素的中位值
(2)计算所有元素与中位值的绝对偏差:
(3)取得绝对偏差的中位值
(4)确定参数n,则可以对所有的数据作如下调整:
在这里我没有调整离群值,而是直接将其剔除了。
代码如下:
import numpy as np # MAD法: media absolute deviation def MAD(dataset, n): median = np.median(dataset) # 中位数 deviations = abs(dataset - median) mad = np.median(deviations) remove_idx = np.where(abs(dataset - median) > n * mad) new_data = np.delete(dataset, remove_idx) return new_data
2.
法
法又称为标准差法。标准差本身可以体现因子的离散程度,和MAD算法类似,只是
法用到的不是中位值,而是均值,并且n的取值为3,代码如下:
# 3sigma法 def three_sigma(dataset, n= 3): mean = np.mean(dataset) sigma = np.std(dataset) remove_idx = np.where(abs(dataset - mean) > n * sigma) new_data = np.delete(dataset, remove_idx) return new_data
3.百分位法
百分位计算的逻辑是将因子值进行升序的排序,对排位百分位高于97.5%或排位百分位低于2.5%的因子值,类似于比赛中”去掉几个最高分,去掉几个最低分“的做法。代码如下:这里参数采用的是20%和80%,具体取值,还需具体情况具体分析。
# 百分位法:原始参数 min=0.025, max=0.975 def percent_range(dataset, min= 0.20, max= 0.80): range_max = np.percentile(dataset, max * 100) range_min = -np.percentile(-dataset, (1 - min) * 100) # 剔除前20%和后80%的数据 new_data = [] for value in dataset: if value < range_max and value > range_min: new_data.append(value) return new_data
这三个方法思路简单,易于实现,但是只能处理一维数据,接下来,再考虑更复杂但却更精准的可适用于多维数据的离群值处理方法!参考资料:离群点检测---基于kNN的离群点检测、LOF算法和CLOF算法
-
R语言数据挖掘之数据探索
2018-04-12 10:41:57数据质量分析是数据预处理的前提,是数据挖掘分析结论有效性和准确性的基础,其主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。在常见的数据挖掘工作中,脏...数据质量分析是数据预处理的前提,是数据挖掘分析结论有效性和准确性的基础,其主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。在常见的数据挖掘工作中,脏数据主要值缺失值和异常值。本专场重点介绍了缺失值的判断、缺失值模式探索、缺失值处理及异常值判断的常用方法及R语言实践。
本场Chat包括以下内容:
- 缺失值的判断和模式识别。
- 缺失值处理:直接删除缺失值、缺失值填补、缺失值插补。
- 异常值判断的常用方法。
- 利用qcc质量控制图和箱线图识别异常值。
- 利用聚类分析甄别异常值。
阅读全文: http://gitbook.cn/gitchat/activity/58da7fda572d78ce2c73336f
您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。
-
一个AI产品(数据挖掘)的产生过程
2018-10-22 14:36:51模型的训练一般包括以下步骤: 1:数据的输入: 一般使用pandas库,他有几种常用的读入不同文件类型的函数: 一般我使用read_csv(File_Path,[params]);(对应的文件类型为csv文件,这是数据挖掘中的常用文件格式... -
基于内容的卫星云图挖掘方法研究
2011-08-03 01:46:58(1)在卫星云图预处理方法研究中,提出了新的非线性自适应噪声滤除算法。 该算法与常用的中值滤波技术相比,它能有效的消除椒盐噪声,保护云图中非噪 声点不受影响,确保像素信息能够真实反映云内状态。云图中存在... -
神经网络中网络优化和正则化
2020-08-10 12:27:54常用的优化方法:参数初始化,数据预处理方法,逐层归一化,超参数优化方法。 常用的网络正则化:L1,L2正则化,权重衰减,提前停止,丢弃法,数据增强和标签平滑。 网络优化: 包括了模型选择和参数优化,神经... -
基于sklearn的logistic回归对于鸢尾花的机器学习分类实践
2020-02-23 14:08:12它还为模型拟合、数据预处理、模型选择和评估以及许多其他实用工具提供了各种工具。sklearn对机器学习的常用算法进行了封装,包括回归、降维、分类、聚类等。对于以下的机器学习分类实践所用到的函数及方法进行说明... -
特征工程
2019-11-14 20:12:11常用的特征工程方法 1、特征工程是什么 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而...特征处理是特征工程的核心部分,sklearn提供了较为完整的特征处理方法,包括数据预处理、特征选择、降维... -
VC++科学计算器的设计V1_4Beta.rar
2010-03-23 04:54:59但是,算法仅仅给出了一个笼统的实现策略,对于具体的数据类型、运算操作符及优先级情况、怎样支持函数调用、自定义内存变量如何实现等具体问题并无现成的解决方案,需要开发人员自己实际设计相应的算法解决,而这也... -
PHP基础教程 是一个比较有价值的PHP新手教程!
2010-04-24 18:52:44ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。... -
C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导
2018-04-06 11:31:157.3.2 函数调用时的数据传递 7.3.3 函数调用的过程 7.3.4 函数的返回值 7.4 对被调用函数的声明和函数原型 7.5 函数的嵌套调用 7.6 函数的递归调用 7.7 数组作为函数参数 7.7.1 数组元素作函数实参 7.7.2 数组名作... -
新增图像处理模块transform: 飞桨新增了图像预处理模块,其中包含十数种数据处理函数,基本涵盖了常用的数据处理、数据增强方法。 提供常用的神经网络模型可供调用: 高层API中集成了计算机视觉领域和自然语言处理...
-
MySQL 5权威指南(第3版)--详细书签版
2013-02-05 15:44:009.2.5 在使用LIMIT关键字确定数据表里的数据记录数(SQLCALCFOUNDROWS、FOUNDROWS()) 173 9.3 对查询结果进行排序(ORDER BY) 174 9.3.1 选择一种排序方式 174 9.3.2 试用不同的排序方式 175 9.4 筛选数据... -
得到文章内容数据TXT文件,接着我们将新闻正文文本数据进行中文分词,对数据进行的一些初步处理,包括缺失值填写、噪声处理、不一致数据修正、中文分词等,其目标是通过分析解析文章得到更标准、高质量的数据,纠正...
-
python进行机器学习(一)之数据预处理 - 光彩照人 - 博客园 随机森林sklearn FandomForest,及其调参 - 码灵薯的博客 - CSDN博客 【集成学习】scikit-learn随机森林调参小结 - sun_shengyun的专栏 - CSDN博客 加州...
-
删除文本中异常字符,主要保留汉字、常用的标点,单位计算符号,字母数字等。 3. 文件读写工具 功能 函数 描述 按行读取文件 read_file_by_iter 以迭代器形式方便按行读取文件,节省内存,支持指定行数,...
-
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--详细书签版
2013-02-04 12:43:52读者可以学习到以下几个方面的技巧: 掌握Oracle数据库中独有的SQL强大特征; 读取并理解SQL执行计划; 快速分析并改进表现欠佳的SQL; 通过提示及配置文件等来控制执行计划; 在程序中优化查询而无需改动... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码
2013-02-04 12:49:33读者可以学习到以下几个方面的技巧: 掌握Oracle数据库中独有的SQL强大特征; 读取并理解SQL执行计划; 快速分析并改进表现欠佳的SQL; 通过提示及配置文件等来控制执行计划; 在程序中优化查询而无需改动... -
C#微软培训教材(高清PDF)
2009-07-30 08:51:1711.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三章 事件和索引指示器 .148 ... -
MAPGIS地质制图工具
2013-05-06 16:15:306、点存储,就会存储这个钻孔的数据,如果你还有钻孔,就继续在另外一个钻孔位置点击一下,输入数据,点存储,如果没有了,就点退出。 7、输入探槽数据。选择读取探槽数据,在探槽起点的地方点击一下,会出现探槽... -
C#微软培训资料
2014-01-22 14:10:1711.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三章 事件和索引指示器 .148 ... -
C/C++程序员面试指南.杨国祥(带详细书签).pdf
2018-04-08 02:46:41面试题20:结构体是什么样的数据类型 面试题21:结构体可以直接赋值吗 面试题22:组织WAV文件头,并解析WAV格式的各项信息 面试题23:计算学生不及格的人数打印他们的性别、姓名和成绩 面试题24:结构体内存对齐问题... -
C语言程序设计标准教程
2009-05-22 18:29:14C 第二章: 数据类型、运算符、表达式 C语言的数据类型 在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面: ...常用的转义字符及其含义... -
C++程序员面试宝典
2013-04-01 13:36:19本书主要内容包括:面试流程及准备、英语面试、电话面试、C/C++语言基础、流程控制、输入/输出、预处理、内存管理、指针、面向对象基础、类、多态、继承、函数、模板与STL、数据结构、软件工程、数据库、操作系统、...
-
MATLAB机器人工具箱RVC报错:Number of robot DOF must be >= the same number of 1s in the mask matrix
-
c++笔记:类的继承和派生
-
Ubuntu16.04安装ROS Kinetic详细过程(精简明了)
-
HIKTOOL解除时限版另一个有问题下我
-
vue语法总结
-
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
-
MySQL Router 实现高可用、负载均衡、读写分离
-
C# 关于爬取网站数据遇到csrf-token的分析与解决
-
Unity RUST 逆向安全开发
-
access应用的3个开发实例
-
2011年南京大学-数学分析-研究生入学试题.pdf
-
2012年南京大学《数据库技术》期末考试试卷.pdf
-
MySQL 高可用(DRBD + heartbeat)
-
深入理解TypeScript(一)
-
2021年B2B内容营销白皮书.pdf
-
Django最全入门学习资料
-
基于THB6128步进电机驱动板protel99se设计硬件(原理图+PCB).zip
-
中国房地产市场2020年回顾与2021年展望-世联行 (1).pdf
-
基于THB7128步进电机驱动板protel99se设计硬件原理图+PCB源文件(直接拿来可以用).zip
-
华东师范大学-数学分析-历年真题(1997年-2006年).pdf