数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。
在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。
好处:
- 提升模型的收敛速度
- 提升模型的精度
Python版Sigmod函数:
def sigmoid(x):
''' 归一化函数 '''
import numpy as np
return 1.0 / (1.0 + np.exp(-x))
因此,如果使用sigmod将所有大于0的数映射到[0, 5]区间上,只需要
def sigmoid(x):
''' 修改之后的归一化函数 '''
import numpy as np
a = 1.0 / (1.0 + np.exp(-x))
return (a - 0.5) * 10 # 减去0.5之后,函数区间变为[0-0.5],再乘以10,即变成[0,5],前提是x是正数
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-5,5,1000) #这个表示在-5到5之间生成1000个x值
y=[1/(1+np.exp(-i)) for i in x] #对上述生成的1000个数循环用sigmoid公式求对应的y
plt.plot(x,y) #用上述生成的1000个xy值对生成1000个点
plt.show() #绘制图像