白化(预处理步骤)【转】

介绍

我们已经了解了如何使用PCA降低数据维度。在一些算法中还需要一个与之相关的预处理步骤,这个预处理过程称为白化。举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的就是降低输入的冗余性;更正式的说,我们希望通过白化过程使得学习算法的输入具有如下性质:(i)特征之间相关性较低;(ii)所有特征具有相同的方差。

2D的例子

下面我们先用前文的2D例子描述白化的主要思想,然后分别介绍如何将白化与平滑和PCA相结合。

如何消除特征之间的相关性?在前文计算转存失败重新上传取消时实际上已经消除了输入特征转存失败重新上传取消之间的相关性。得到的新特征  的分布如下图所示:

这个数据的协方差矩阵如下:

(注:严格地讲,这部分许多关于“协方差”的陈述仅当数据均值为0时成立。下文的论述都隐式地假定这一条件成立,不过即使数据均值不为0,下文的说法仍然成立,所以你无需担心这个。)

 协方差矩阵对角元素的值为  和  绝非偶然。并且非对角元素值为0; 因此,  和  是不相关的, 满足我们对白化结果的第一个要求 (特征间相关性降低)。

为了使每个输入特征具有单位方差,我们可以直接使用作为缩放因子来缩放每个特征转存失败重新上传取消。具体地,我们定义白化后的数据转存失败重新上传取消如下:

绘制出 转存失败重新上传取消 ,我们得到:

这些数据现在的协方差矩阵为单位矩阵I。我们说, 是数据经过PCA白化后的版本:  中不同的特征之间不相关并且具有单位方差。

 白化与降维相结合:如果你想要得到经过白化后的数据,并且比初始输入维数更低,可以仅保留  中前  个成分。当我们把PCA和正则化结合起来时(在稍后讨论),转存失败重新上传取消中最后的少量成分将总是接近于0,因而舍弃这些成分不会带来很大的问题。

ZCA白化

最后要说明的是,是数据的协方差矩阵变为单位矩阵I的方式并不唯一。具体地,如果R是任意正交矩阵,即满足(说它正交不太严格,R可以是旋转或反射矩阵),那么

仍然具有单位协方差。在ZCA白化中,令  。我们定义ZCA白化的结果为:转存失败重新上传取消

绘制,得到:

转存失败重新上传取消

可以证明,对所有可能的R,这种旋转式的尽可能地接近原始输入数据x。当使用ZCA白化时(不同于PCA白化),我们通常保留数据的全部n个维度,不尝试去降低它的维数。

正则化

实践中需要实现PCA白化或ZCA白化时,有时一些特征值在数值上接近于0,这样在缩放步骤时我们除以  将导致除以一个接近0的值;这可能会导致数据上溢(赋为最大值)或造成数值不稳定。因而在实践中,我们使用少量的正则化实现这个缩放过程,即在取平方根和倒数之前给特征值加上一个很小的常数

当  在区间  上时, 一般取值为 

对图像来说,这里加上,对输入图像也有一些平滑(或低通滤波)的作用。这样处理还能消除在图像的像素信息获取过程中产生的噪声,改善学习到的特征。

ZCA白化是一种数据预处理方法,它将数据从  映射到  。

事实证明这也是一种生物眼睛(视网膜)处理图像的粗糙模型。具体而言,当你的眼睛感知图像时,由于一幅图像中相邻的部分在亮度上十分相关,大多数临近的“像素”在眼中被感知为相近的值。因此,如果人眼需要分别传输每个像素值(通过视觉神经)到大脑中,会非常不划算。取而代之的是,视网膜进行一个与ZCA中相似的去相关操作(这是由视网膜上的ON-型和OFF-型光感受器细胞将光信号转变为神经信号完成的)。由此得到对输入图像的更低冗余的表示,并将它传输到大脑。

白化(预处理步骤)【转】相关推荐

  1. 使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战

    使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战 目录

  2. spm12预处理步骤及知识点总结

    spm12预处理步骤及知识点总结 spm里session等于一个run,是一次连续的扫描,而不是被试从进去scanner到出来.一般从scanner拷出来的文件夹中,每一个文件夹里的dicom文件,代 ...

  3. spss数据预处理步骤_数据处理之剔除无效问卷

    我们都知道在数据分析前,首先需要对数据进行预处理,检查数据中是否含有存在无效样本.异常值等.如果同一样本中存在大量漏填数据或相似答案过多的情况这样的样本都应该算作无效样本来处理. 无效样本的常见使用场 ...

  4. NLP任务中的文本预处理步骤、工具和示例

    作者 | Viet Hoang Tran Duong 来源 | DeepHub IMBA 头图 | CSDN付费下载于视觉中国 数据是新的石油,文本是我们需要更深入钻探的油井.文本数据无处不在,在实际 ...

  5. spss数据预处理步骤_数学建模准备必备的十个数据分析软件(数学建模从入门到精通)...

    前几天咋们聊了很多关于数学建模的干货,比如怎么样去前期准备学习数学建模,又比如数学建模需要哪些疾病软件?再比如数学建模论文摘要写作技巧.昨天那篇更是直接把数学建模常用的思维导图.流程图软件全部统统介绍 ...

  6. 利用ENVI对LANDSAT系列数据进行预处理步骤

    数据来源:地理空间数据云 首先,利用envi打开 File>Open 下载好的Landsat数据中的MTL.txt文件 进行辐射定标: 在工具栏Toolbox中搜索 Radiometric Co ...

  7. 独立成分分析ICA/FastICA

    最近在学习CSP,然后又注意到了ICA,这个算法之前就用过,但是没有系统的整理一下,所以就在这里梳理一下相关内容,方便以后查阅. 独立成分分析ICA/FastICA 1 盲源分离(BlindSourc ...

  8. 学习笔记 | 独立成分分析(ICA, FastICA)及应用

    学习笔记 | 独立成分分析[ICA, FastICA]及应用 1 背景说明 2 算法原理 2.1 ICA简介 2.2 形式化表达 3 算法步骤与代码 4 算法改进:FastICA 5 ICA实例与应用 ...

  9. 数据预处理的四个步骤

    数据预处理的四个步骤分别是数据清洗.数据集成.数据变换和数据归约:而数据的预处理是指对所收集数据进行分类或分组前所做的审核.筛选.排序等必要的处理:数据预处理,一方面是为了提高数据的质量,另一方面也是 ...

最新文章

  1. PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解
  2. 浅谈 System.Data.DataRowCollection 类
  3. C#字节数组与值类型变量的互相转换,以及注意事项
  4. uImage和zImage的区别
  5. Struts2 OGNL
  6. php 如何生成exe文件怎么打开,如何把PHP转成EXE文件
  7. 缓存应用--Memcached分布式缓存简介(二)
  8. Java Servlet
  9. 48个国际音标发音图解暨口形及发音方法
  10. 电子计算机为什么123安不出来,方正软件常见问题及其解决办法-精.doc
  11. beta阶段测试基本概况报告
  12. 静静的推荐分数 20作者 陈越单位 浙江大学
  13. Windows 7 万能驱动下载 免费
  14. light-bot小游戏
  15. 串口调试小节之五 串口参数设置查询
  16. excel组合汇总_Excel汇总20150202
  17. java 求1-100之间的质数
  18. 京东数科与中铁武汉电气化局达成战略合作 数字科技助力电气化铁路建设
  19. 交易系统解析(八)证券公司与基金公司系统综述
  20. jQuery入门第十章(视频音频)

热门文章

  1. oracle 提示:ORA-02292:integrity constraint(xxxxxxx) violated - child record found
  2. 使用python愉快地做高数线代题目~
  3. 2022-2028年中国鸡血石产业市场研究及前瞻分析报告
  4. vue-devTools插件安装流程
  5. Solr 使用Facet分组过程中与分词的矛盾解决办法
  6. 2022-2028年中国半导体用环氧塑封料(EMC)行业市场全景调查及投资前景分析报告
  7. 运动是性价比最高的投资
  8. 未授予用户在此计算机上的请求登陆类型处理办法
  9. 命名实体识别学习笔记——使用Ltp
  10. bootstrap上传文件美化