规格化数据方法

12 sec read

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:

min-max标准化(Min-max normalization)

min-max标准化方法是对原始数据的线性变换。设minA和maxA分别为属性A的原始值中的最小值和最大值,将属性A的一个原始值v通过min-max标准化映射成在区间[new_minA, new_maxA]中的值v’的计算方法是:

若新的取值区间是[0,1],则公式可简化为:

min-max标准化方法保留了原始数据之间的相互关系,但是如果标准化后,新输入的数据超过了原始数据的取值范围,即不在原始区间[minA, maxA]中,则会产生越界错误。因此这种方法适用于原始数据的取值范围已经确定的情况。

z-score 标准化(zero-mean normalization)

这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将属性A的原始值v使用z-score标准化到v’的计算方法是:

其中A是属性A原始值得均值,σA是属性A原始值的标准差。标准差σA即为方差σ^2的平方根。方差的计算公式如下:

z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

Decimal scaling

这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值v使用decimal scaling标准化到v’的计算方法是:

其中,j是满足条件的最小整数。

注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。

log函数转换

通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:

看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。

atan函数转换

反正切函数也可以实现数据的归一化:

使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。

而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法。

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Pandas学习笔记:Excel、CSV文件的读取与导出

在使用Pandas处理数据时,常见的读取数据的方式时从Excel或CSV文件中获取,另外有时也会需要将处理完的数据输出为Excel或CSV文件。今天就一起来学习下Pandas常见的文件读取与导出的方法。
2 min read

Pandas学习笔记之数据类型

Pandas是建立在Numpy上,并与其他第三方库在科学运算环境中有较好兼容性的包。其最大的特色在于提供灵活直观的数据结构来处理关联和有标签的数据。如果从底层视角观察Pandas,可以把它看成增强版的NumPy结构化数据,行列都不再只是简单的整数索引,还可以 ...
1 min read

Excel比较多列并取获最小值或最大值取列名

最近在Excel中分析数据的时候需要要比较多列数据,并返回列中最小值所在列的列名,具体场景如下:
2 sec read

2 Replies to “规格化数据方法”

Leave a Reply

Your email address will not be published. Required fields are marked *