Pythonnumpy归⼀化和标准化
⼀、概念
  归⼀化:1)把数据变成(0,1)或者(1,1)之间的⼩数。主要是为了数据处理⽅便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。2)把有量纲表达式变成⽆量纲表达式,便于不同单位或量级的指标能够进⾏⽐较和加权。
归⼀化是⼀种简化计算的⽅式,即将有量纲的表达式,经过变换,化为⽆量纲的表达式,成为纯量。
  标准化:在机器学习中,我们可能要处理不同种类的资料,例如,⾳讯和图⽚上的像素值,这些资料可能是⾼维度
的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,这个⽅法被⼴泛的使⽤在许多机器学习算法中(例如:⽀持向量机、逻辑回归和类神经⽹络)。
⼆、为什么要归⼀化/标准化?
归⼀化/标准化实质是⼀种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反⽽能提⾼数据的表现,这些性质是归⼀化/标准化的前提。⽐如有⼀个很重要的性质:线性变换不会改变原始数据的数值排序
三、python实现
# 归⼀化numpy库是标准库吗
def normalization(data):
_range = np.max(data) - np.min(data)
return (data - np.min(data)) / _range
# 标准化
def standardization(data):
mu = np.mean(data, axis=0)
sigma = np.std(data, axis=0)
return (data - mu) / sigma