python - 如何标准化从 - inf 到 +inf 在 0,1 之间的数据,其中值 0 在标准化时始终等于 0.5?
问题描述
我正在尝试对神经网络的数据集进行标准化,数据集中有负值和正值,可以从 -inf 变为 +inf。我需要对 0,0.5 之间的负值和 0.5,1 之间的正值进行归一化,但归一化的数据永远不会达到 0 或 1,因为它们分别是 -inf 和 +inf。
我可以用python做到这一点吗?
对不起,我生疏的英语,如果这个问题看起来很愚蠢,但我真的在努力解决这个数学问题。
解决方案
您可以使用sigmoid 函数。
Sigmoid 函数 |
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
但 sigmoid 并不是唯一这样做的函数。也检查一下tanh(x)
。
tanh(x) = (exp(x) - exp(-x))/(exp(x) - exp(-x)) = sigmoid(2x) - sigmoid(-2x)
参考
推荐阅读
- angular - Angular 8:对象通过服务,数据不变
- javascript - Three.js CyclinderGeometry - 在一个中修改顶点,影响另一个
- google-drive-api - 如何更新 gapi.client.drive.FilesResource.list 方法以支持参数“driveId”?
- powershell - 批处理在后台运行
- angular - http://jinkins_Url/v/job/job_name/buildid/wfapi/ 的 Http 失败响应:Angular 8 中的 0 未知错误,但状态码为 200
- python - Python多处理-starmap_async在starmap的地方不起作用?
- html - 如何让这些括号框对齐属性?
- groovy - groovy 对版本号列表进行排序
- reactjs - 是否有一些 redux 没有在 react 上提供的功能?
- python - 正则表达式获取文本左对齐