image
LP小透明

当你感到无聊的时候,就去学习,因为一旦你开始认真学习,就会立刻发现比学习有趣的事来打断你的学习

数据标准化映射到某区间

LP小透明    2018-10-10 23:25

 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。

 

在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

 

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

 

好处:

  1. 提升模型的收敛速度
  2. 提升模型的精度

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()  #绘制图像

 

Views: 4.6K

[[total]] comments

Post your comment
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]Floor
  2. Click to load more...
  3. Post your comment