(忘记在哪里看到这篇了,当时只是做了记录,寻找原创)
数据的标准化是一个比较常用的数据预处理方法,其目的是处理不同量纲的数据,使其缩放到相同的数据区间和范围,以减少规模,特征、分布差异对模型的影响。标准化后的数据还具有了直接计算并生成符合指标的意义。
数据的标准化主要有以下四种方法:
1、实现中心化和正态分布的Z-score
2、实现归一化的Max-Min
3、用于稀疏矩阵的MaxAbs
4、针对离群点的RobustScaler
下面来具体讲讲以上四种方法:
1、Z-score
它是基于原始数据的均值和标准差进行的标准化,其标准化的计算公式为x’=(x-mean)/std,其中mean和std为x所在列的均值和标准差。
注:这种方法适合大多数的数据类型的数据,得到的数据是以0为均值,1为方差的正态分布,但这种方法改变了原始数据的结构,因此不适宜用于对稀疏矩阵做数据预处理。
2、Max-Min
该方法是用数据的最大值和最小值对原始数据进行预处理其是一种线性变换。其标准化的计算公式为x’=(x-min)/(max-min),min和max是x所在列的最小值和最大值。此方法得到的数据会完全落入[0,1]区间内(z-score没有类似区间),而且能使数据归一化落到一定的区间内,同时保留原始数据的结构
3、MaxAbs
根据最大值得绝对值标准化。其标准化的计算公式为x’=x/|max|,其中max是x所在列的最大值。该方法和Max-Min方法类似,但该方法的数据区间为[-1,1],也不会破坏原始数据的结构,因此也可以用于稀疏矩阵、稀疏的CSR或CSC矩阵。
4、RobustScaler
当数据集中含有离群点,即异常值时,可以用z-score进行标准化,但是标准化后的数据并不理想,因为异常点的特征往往在标准化之后容易失去离群特征。此时可以用该方法针对离群点做标准化处理