好玩的人工智能
快乐的深度学习

tensorflow数据归一化,z-score,min-max几种方法

归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量,目的都是消除量纲的影响,以解决指标之间的可比性问题。

一 min-max标准化

min-max标准化,也称为极差法,这是对原始数据的一种线性变换,使原始数据映射到[0-1]之间。
y=(x-MinValue)/(MaxValue-MinValue)

说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值

这种标准化本质上是指将原始数据的最大值映射成1,是最大值归一化。

离差标准化保留了原来数据中存在的关系,是消除量纲和数据取值范围影响的最简单方法。这种处理方法的缺点是若数值集中且某个数值很大,则规范化后各值接近于0,并且将会相差不大。(如 1, 1.2, 1.3, 1.4, 1.5, 1.6,8.4)这组数据。若将来遇到超过目前属性[min, max]取值范围的时候,会引起系统报错,需要重新确定min和max。

二 z-score标准化

z-score标准化,也称为标准化分数,这种方法根据原始数据的均值和标准差进行标准化,经过处理后的数据符合标准正态分布,即均值为0,标准差为1(根据下面的转化函数很容易证明);标准分数(standard score)也叫z分数(z-score),是一个分数与平均数的差再除以标准差的过程。

用公式表示为:

z=(x-μ)/σ。

其中x为某一具体分数,μ为平均数,σ为标准差。

Z值的量代表着原始分数母体平均值之间的距离,是以标准差为单位计算。在原始分数低于平均值时Z则为负数,反之则为正数

Z-score可用于数据分布过于凌乱,无法判断最大值与最小值,或者数据中存在过多的奇异点,可以用Z-score方法对数据做规范化处理。

标准分数可以回答这样一个问题:”一个给定分数距离平均数多少个标准差?”在平均数之上的分数会得到一个正的标准分数,在平均数之下的分数会得到一个负的标准分数。

以上两种归一化方法是最常用的归一化方法,python也提供了现成的库函数来实现最大值和z-score归一化。

Z-Score的优缺点
Z-Score最大的优点就是简单,容易计算,在R中,不需要加载包,仅仅凭借最简单的数学公式就能够计算出Z-Score并进行比较。此外,Z-Score能够应用于数值型的数据,并且不受数据量级的影响,因为它本身的作用就是消除量级给分析带来的不便。

但是Z-Score应用也有风险。首先,估算Z-Score需要总体的平均值与方差,但是这一值在真实的分析与挖掘中很难得到,大多数情况下是用样本的均值与标准差替代。其次,Z-Score对于数据的分布有一定的要求,正态分布是最有利于Z-Score计算的最后,Z-Score消除了数据具有的实际意义,A的Z-Score与B的Z-Score与他们各自的分数不再有关系,因此Z-Score的结果只能用于比较数据间的结果,数据的真实意义还需要还原原值。

三 对数函数转换:

y=log10(x)

说明:以10为底的对数函数转换。

 

四 反正切函数转换:

y=atan(x)*2/PI

需要归一化的模型有

  • 神经网络,标准差归一化
  • 支持向量机,标准差归一化
  • 线性回归,可以用梯度下降法求解,需要标准差归一化
  • PCA
  • LDA
  • 聚类算法基本都需要
  • K近邻,线性归一化,归一到[0,1]区间内。
  • 逻辑回归

不需要归一化的模型:

  • 决策树: 每次筛选都只考虑一个变量,不考虑变量之间的相关性,所以不需要归一化。
  • 随机森林:不需要归一化,mtry为变量个数的均方根。
  • 朴素贝叶斯

需要正则化的模型:

  • Lasso
  • Elastic Net
未经允许不得转载:零点智能 » tensorflow数据归一化,z-score,min-max几种方法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

零点智能 人工智能社区,加Q群:469331966

投稿&建议&加Q群