数据预处理的一些知识「建议收藏」

数据预处理的一些知识「建议收藏」数据预处理的一些知识做研究时只要与数据分析相关就避免不了数据预处理。我们常见的预处理包括:标准化(规范化),归一化,零均值(化),白化,正则化……这些预处理的目的是什么呢?网上查的总是零零散散,很难搞清楚。因此我用此片博客来总结下。借鉴其他博客的内容,可能未一一注明还请谅解。一,数据标准化目的:为了消除量纲影响和变量自身数值大小的影响,方便统计处理(尤其是加权),故将数据标准化。例如:我们对

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

数据预处理的一些知识

做研究时只要与数据分析相关就避免不了数据预处理。我们常见的预处理包括:标准化(规范化),归一化,零均值(化),白化,正则化……这些预处理的目的是什么呢?网上查的总是零零散散,很难搞清楚。因此我用此片博客来总结下。借鉴其他博客的内容,可能未一一注明还请谅解。

一,数据标准化
**目的:**为了消除量纲影响和变量自身数值大小的影响,方便统计处理(尤其是加权),故将数据标准化。
例如:我们对一个人提取特征时获得:年龄20岁,身高183cm,体重70kg。第二个人:年龄14岁,身高160cm,体重60kg。我们在计算两个人的差距的时候如果这样计算:20-14+183-160+70-60=39。是不是感觉有问题,39中一个身高占了23,一半以上(似乎自己加了权值,还挺大,我们需要自己设定权值)。这就是因为没有标准化,使得个别变量过大产生的问题。

方法:
1、Min-max 标准化
min-max标准化方法是对原始数据进行线性变换。将某一属性的一个原始值 x x x通过min-max标准化映射成在区间[0,1]中的值 x ′ x’ x,其公式为:
x ′ = ( x − m i n ) / ( m a x − m i n ) x’=(x-min)/(max-min) x=(xmin)/(maxmin)
2、z-score标准化
这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值 x x x使用z-score标准化到 x ′ x’ x。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
   x ′ = ( x − μ ) / σ x’=(x-\mu)/\sigma x=xμ/σ 
3、其他标准化
**Decimal scaling小数定标标准化:**这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值 x x x使用decimal scaling标准化到 x ′ x’ x的计算方法是: x ′ = x / ( 10 ∗ j ) x’=x/(10*j) x=x/(10j) 其中, j j j是满足条件的最小整数。例如假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被规范化为-0.986。

对数Logistic模式: x ′ = 1 / ( 1 + e ( − x ) ) x’=1/(1+e^{(-x)}) x=1/1+e(x)

注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。以上公式中所提高的极大值,极小值,方差等均是某一属性的,并非所有属性。标准化之后数据均值为0方差为1,数据可正可负。

二,归一化

**目的:**消除量纲和过大数据的影响,同时提高计算时的收敛速度。
知乎上有个解释:虽然同样作出了归一化,但归一化的目的却各不相同。对于不同的模型,不同的业务,归一化就会有不同的意义。
我本人总结如下:
1)无量纲化:
还是上面例子:年龄20岁,身高183cm,体重70kg。183cm在数值上比20岁大得多,但实际上这两个对于衡量一个人的特征同等重要,因此将各个属性进行归一化,纯数值对待。(注意和标准化时数据使用的目的不同)
2)避免数值问题:
太大的数会引发数值问题。
3)一些模型求解的需要:
例如梯度下降法。一种情况—–不归一化,容易产生陕谷,而学习率较大时,以之字形下降。学习率较小,则会产生直角形路线,速度较快。

方法:
归一化的映射函数并不固定。例如matlab中的mapminmax函数
y = ( y m a x − y m i n ) ∗ ( x − x m i n ) / ( x m a x − x m i n ) + y m i n y=(ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin y=(ymaxymin)(xxmin)/(xmaxxmin)+ymin
其中 y m a x , y m i n ymax,ymin ymaxymin,为自己定义的,一般默认[-1,1],也可以自己修改。详细参考 http://www.ilovematlab.cn/thread-47224-1-1.html
以下方法为基础方法。
1、线性函数转换
y = ( x − m i n ) / ( m a x − m i n ) y=(x-min)/(max-min) y=(xmin)/(maxmin)

说明:x、y分别为转换前、后的值, m a x max max m i n min min分别为样本(与标准化对照下看区别)的最大值和最小值

2、对数函数转换:
y = l o g 10 ( x ) y=log_{10}(x) y=log10(x)
说明:以10为底的对数函数转换。

例如:常用将数据归一到[0,1]
y = ( x − m i n ) ∗ ( 1 − 0 ) ( m a x − m i n ) y = \dfrac{(x-min)*(1-0)}{(max-min)} y=maxminxmin10
区别标准化和归一化
标准化和归一化的处理目的不同。在做统计学时经常用到标准化(数据可正可负),在进行数据挖掘的时候经常用到归一化(所有数据在一个具体区间内),SVM和BP神经网络在输入数据前进行归一化可以显著提高准确率和速度。
应用归一化时所面临的问题:
(1)是对每一个样本进行进行归一化(按行归一化)还是对每一个维度进行归一化(按列归一化)?
(2)是将训练集和测试集分别归一化还是放在一起形成一个大矩阵一起进行归一化?
http://www.ilovematlab.cn/thread-63766-1-1.html

三,零均值
将数据转化为均值为零的数据。z-score方法也可以将作为零均值化的方法。例如:23 20 40 35 34均值为:30.4,方差:72.3;z-score标准化后的数据 -0.1024 -0.1438 0.1328 0.0636 0.0498,均值为 − 5.5511 ∗ 1 0 − 18 -5.5511*10^{-18} 5.55111018,注意零均值一般操作在同一样本的不同属性之间,和z-score用于标准化用作统计学时的目的不同。

四,白化
白化:又称漂白或者球化;是对原始数据 x x x实现一种变换,变换成 x ′ x’ x;使 x ′ x’ x的协方差矩阵的为单位阵。斯坦福的一篇关于白化的教程提到:由于原始图像相邻像素值具有高度相关性,所以图像数据信息冗余,对于白化的作用的描述主要有两个方面:1,减少特征之间的相关性;2,特征具有相同的方差(协方差阵为1);一般用在深度学习中的图像预处理。
(参考:http://blog.csdn.net/whiteinblue/article/details/36171233
步骤:
随机向量的“零均值化”和“空间解相关”是最常用的两个预处理过程,其中“零均值化”如上,而“空间解相关”如下矩阵处理:
若一零均值的随机向量 Z = [ z 1 , z 2 , . . . . z m ] Z=[z_1,z_2,….z_m] Z=[z1,z2,....zm],满足 E { Z ∗ Z ′ } = I E\{Z*Z’\}=I E{
Z
Z}=I
I I I为单位矩阵,我们称这个向量为白色向量。白化的本质在于去相关,这个同PCA原理相似;在ICA(独立成分分析)中,对于为零均值的独立源信号当 i ! = j i!=j i=j时, S ( t ) = [ s 1 ( t ) , s 2 ( t ) . . . . . . s n ( t ) ] S(t)=[s_1(t),s_2(t)……s_n(t)] S(t)=[s1(t),s2(t)......sn(t)],有 E { S i ∗ S j } = E { S i } ∗ E { S j } = 0 E\{S_i*S_j\}=E\{S_i\}*E\{S_j\}=0 E{
Si
Sj}=E{
Si}
E{
Sj}=
0
,且协方差矩阵是单位阵 c o v ( S ) = I cov(S)=I cov(S)=I,(零均值时相关系数矩阵和协方差矩阵相等),因此,源信号是白色的。对观测信号 X ( t ) X(t) X(t),我们应该寻找一个线性变换,使 X ( t ) X(t) X(t)投影到新的子空间后变成白化向量,即:
Z ( t ) = W 0 ∗ X ( t ) Z(t)=W_0*X(t) Z(t)=W0X(t)
其中 W 0 W_0 W0为白化矩阵, Z Z Z为白化向量

利用主分量分析,我们通过计算样本向量得到一个变换:
W 0 = Λ − 1 / 2 ∗ U T W_0=\Lambda^{-1/2}*U^T W0=Λ1/2UT

其中 Λ \Lambda Λ U U U分别代表协方差矩阵的特征向量矩阵和特征值矩阵。可以证明,线性变换 W 0 W_0 W0满足白化变换的要求。通过正交变换,可以保证 U ′ ∗ U = U ∗ U ′ = I U’*U=U*U’=I UU=UU=I。因此通过协方差阵:

再将 X ( t ) = A ∗ S ( t ) X(t)=A*S(t) X(t)=AS(t)式代入 Z ( t ) = W 0 ∗ X ( t ) Z(t)=W_0*X(t) Z(t)=W0X(t),在令 W 0 ∗ A = B W_0*A=B W0A=B

则有:
Z ( t ) = W 0 ∗ A ∗ S ( t ) = B ∗ S ( t ) Z(t)=W_0*A*S(t)=B*S(t) Z(t)=W0AS(t)=BS(t)

由于线性变换连接的是两个白色随机矢量 Z ( t ) Z(t) Z(t) S ( t ) S(t) S(t),可以得出 B B B一定是一个正交变换。如果把上式中 Z ( t ) Z(t) Z(t)的看作新的观测信号,那么可以说,白化使原来的混合矩阵A简化成一个新的正交矩阵 B B B

五,正则化:
**目的:**对最小化经验误差函数上加约束,解决了逆问题的不适定性,产生的解是存在,唯一,同时降低依赖于数据的噪声对不适定的影响,解就不会过拟合,而且如果先验(正则化)合适,则解就倾向于是符合真解(更不会过拟合了),即使训练集中彼此间不相关的样本数很少。
正则化在不同的领域又有着不同的含义,我们说的正则化一般就是数据过拟合。这个处理过程严格的来说并不是
**方法:**正则化过程在公式中主要以正则项的方式体现,不过正则项的一些知识本人实在难以以自己的理解写出来,不过知乎上有一些回答很棒,连接如下以供参考。
加入正则项的目的:https://www.zhihu.com/question/20924039
正则项的添加原则:http://blog.csdn.net/u012507022/article/details/53204142(最后面介绍)
统计学中的几种类型数据
统计学中,统计数据可分为四种类型(级别从低到高):定类数据/定序数据/定距数据/定比数据。定类数据仅标识不同的类别,没有次序关系(eg:汉族、藏族、回族);定序数据用数字表示某个有序状态所处的位置,可以比较大小(有次序),但是不能做四则预算(eg:年龄划分为老、中、青);定距数据是具有间距的变量,有单位,无零点,只能加减不能乘除(eg:智商120,比智商60要高60,但不能说前者智商是后者两倍,因为智商为0不是绝对零点,不代表没有智商);定比数据除了有定局数据的特性之外,还有一个绝对零点,所以能加减也能乘除(eg:60元比30元多30元,且前者是后者的两倍)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234571.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • react promise使用方法

    react promise使用方法cc=(resolve,reject)=>{consttimeOut=5setTimeout(function(){if(timeOut<1){console.log(‘callresolve()…’);resolve(‘200OK’);}else{console…

    2022年6月22日
    36
  • C DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用

    C DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用1 nbsp nbsp nbsp nbsp nbsp DLLImport 的使用 nbsp usingSystem usingSystem Runtime InteropServi 命名空间 classExample 用 DllImport 导入 Win32 的 MessageBox 函数 nbsp nbsp nbsp DllImport user32 dll CharSet CharSet U

    2025年12月12日
    3
  • 注册公司事宜(注册公司需要什么条件)

    本公司专主代办广州注册公司,广州公司注册,创业者可选择的注册公司主要有两类:一是在海外注册公司,二是在内地如广州注册公司,。不管在国内注册还是在海外基本的操作模式都是相同的,只不过对于成立的公司在手续、税收等政策上有点不同,但就是这点不同,会对未来的公司造成巨大的影响。一、在海外注册公司与广州注册公司的区别      创办企业者可以选择在海外注册公司,现在流行的注册海外公司的方法是注册离岸公司。

    2022年4月11日
    48
  • 3D游戏建模的入门学习方法及技巧

    3D游戏建模的入门学习方法及技巧选一个你感兴趣的模型利用你感兴趣的任何物品或形象的预制模型。选一个可以激发你想象,让你知道清楚知道自己的模型该是什么样子,该怎么动的模型。你可以根据自己的喜好和需要加强现有模型。预制模型可以让你在开始建模之前,体验模型的检查和操作。从简单模型入手从复杂3D模型入手,你可能会备受打击。选一个简单的结构,然后开始学习。你不仅想要学会3D建模的基本知识,还需要慢慢学习掌握不同的工具、技巧。瓶子一样的圆柱体是一个很好的入门模型。或者你可以用更简单的立方体来熟悉所有工具技巧的用法。复杂模型可能会.

    2022年5月20日
    42
  • Linux kworker 占用CPU过高

    Linux kworker 占用CPU过高先打开HTOPhtop如何按HK(大写)我们看到Kworker/0:0+events,下面参考下人家的回答什么是kworker?kworker表示进行“工作”(处理系统调用)的Linux内核进程。在进程列表中可以有多个:kworker/0:1在第一个CPU内核上kworker/1:1是一个,在第二个CPU内核上是一个,依此类推。为什么kworker占用您的CPU?…

    2022年9月24日
    3
  • Wifi开坑

    Wifi开坑缘起:读书期间,大量接触通信基础,无线快速发展,目光关注点自然是高高的基站塔,以及小小的手机(这个信息社会浓缩操作系统、通信、开源和智能化(智能掌机)的结晶当然也不简单)。至于短距离通信里面的形形色色,眼花缭乱的Wifi、BLE(蓝牙)、Zigbee、体域网则是感知中盲区,异类。一直到博士后期到职业才隐隐感知到,天下大事必出于细的道理。云动:就如“小小”体域网(Bodyareanetwork)中除了通用的天线设计、收发、同步、多通道处理外还有特别关注的鲁棒性设计,如何高可靠无中断地始终获取无线信

    2022年7月21日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号