from sklearn.preprocessing import StandardScaler, MinMaxScaler, Normalizer
许多学习算法中目标函数的基础都是假设所有的特征都是零均值并且具有同一阶数上的方差。如果某个特征的方差比其他特征大几个数量级,那么它就会在学习算法中占据主导位置,导致学习器并不能像我们说期望的那样,从其他特征中学习。在机器学习中,标准化是更常用的手段。
一、数据标准化
StandardScaler (基于特征矩阵的列,将属性值转换至服从正态分布)
标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下
常用与基于正态分布的算法,比如回归
二、数据归一化
MinMaxScaler (区间缩放,基于最大最小值,将数据转换到0,1区间上的)
归一化是让不同维度之间的特征在数值上有一定比较性,提升模型收敛速度,提升模型精度
常见用于神经网络
三、Normalizer (基于矩阵的行,将样本向量转换为单位向量)
其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准
常见用于文本分类和聚类、logistic回归中也会使用,有效防止过拟合