原文:http://www.itongji.cn/article/0Q926052013.htmlhtml
在
数据分析以前,咱们一般须要先将数据标准化(normalization),利用标准化后的数据进行
数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不一样性质数据问题,对不一样性质指标直接加总不能正确反映不一样做用力的综合结果,须先考虑改变逆指标数据性质,使全部指标对测评方案的做用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。数据标准化的方法有不少种,经常使用的有“最小—最大标准化”、“Z-score标准化”和“按小数定标标准化”等。通过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,能够进行综合测评分析。
数据的标准化过程也是归一化的过程。
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中常常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不一样单位或量级的指标可以进行比较和加权。
数据归一化的目的是为了把不一样来源的数据统一到一个参考系下,这样比较起来才有意义。
1 定义
归一化就是要把你须要处理的数据通过处理后(经过某种算法)限制在你须要的必定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。
2 为何要用归一化呢?
首先先说一个概念,叫作奇异样本数据,所谓奇异样本数据数据指的是相对于其余输入样本特别大或特别小的样本矢量。
下面举例:
m=[0.11 0.15 0.32 0.45 30;
0.13 0.24 0.27 0.25 45];
其中的第五列数据相对于其余4列数据就能够成为奇异样本数据(下面所说的网络均值bp)。奇异样本数据存在所引发的网络训练时间增长,并可能引发网络没法收敛,因此对于训练样本存在奇异样本数据的数据集在训练以前,最好先进形归一化,若不存在奇异样本数据,则不须要事先归一化。
3 归一化方法
主要有以下几种,供你们参考:(by james)
(1)线性函数转换,表达式以下:
y=(x-MinValue)/(MaxValue-MinValue)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。
在统计学中,归一化的具体做用是概括统同样本的统计分布性。归一化在0-1之间是统计的几率分布,归一化在-1--+1之间是统计的坐标分布。
(2)对数函数转换,表达式以下:
y=log10(x)
说明:以10为底的对数函数转换。
进行Log分析时,会将本来绝对化的时间序列归一化到某个基准时刻,造成相对时间序列,方便排查。
经过以10为底的log函数转换的方法一样能够实现归一下,具体方法也能够以下:
看了下网上不少介绍都是x‘=log10(x),实际上是有问题的,这个结果并不是必定落到[0,1]区间上,应该还要除以 log10(max),max为样本数据最大值,而且全部的数据都要大于等于1。
(3)反余切函数转换,表达式以下:
y=atan(x)*2/PI
归一化是为了加快训练网络的收敛性,能够不进行归一化处理
(4)z-score 标准化(zero-mean normalization)
也叫标准差标准化,通过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:
其中μ为全部样本数据的均值,σ为全部样本数据的标准差。
4 在matlab里面,用于归一化的方法共有三种:
(1)premnmx、postmnmx、tramnmx
(2)prestd、poststd、trastd
(3)是用matlab语言本身编程。
premnmx指的是归一到[-1 1];prestd归一到单位方差和零均值;关于本身编程通常是归一到[0.1 0.9] 。
5 注意
须要说明的事并非任何问题都必须事先把原始数据进行规范化,也就是数据规范化这一步并非必需要作的,要具体问题具体看待,测试代表有时候规范化后的预测准确率比没有规范化的预测准确率低不少.就最大最小值法而言,当你用这种方式将原始数据规范化后,事实上意味着你认可了一个假设就是测试数据集的每一模式的全部特征份量的最大值(最小值)不会大于(小于)训练数据集的每一模式的全部特征份量的最大值(最小值),但这条假设显然过于强,实际状况并不必定会这样.使用平均数方差法也会有一样相似的问题.故数据规范化这一步并非必需要作的,要具体问题具体看待.
归一化首先在维数很是多的时候,能够防止某一维或某几维对数据影响过大,其次能够程序能够运行更快。方法不少,min-max,z-score,p范数等,具体怎么使用,要根据数据集的特征来选择。
(责任编辑:黑阳)算法