为什么在输入神经网络进行故障尺寸判断前,要对振动数据做标准化和归一化?并写出python代码
时间: 2024-02-22 21:55:49 浏览: 57
标准化和归一化是为了消除不同数据之间的量纲差异和数值大小差异,并将数据映射到相同的数值区间,从而提高神经网络的训练效果和泛化能力。
标准化可以将数据转换为标准正态分布,即均值为0,标准差为1,公式为:
$$x_{norm} = \frac{x - \mu}{\sigma}$$
其中,$x$为原始数据,$\mu$为均值,$\sigma$为标准差。
归一化可以将数据缩放到[0,1]或[-1,1]之间,公式为:
$$x_{norm} = \frac{x - x_{min}}{x_{max} - x_{min}}$$
其中,$x_{min}$和$x_{max}$分别为数据的最小值和最大值。
下面是Python代码示例:
```python
import numpy as np
# 定义标准化函数
def standardize(x):
mu = np.mean(x)
sigma = np.std(x)
x_norm = (x - mu) / sigma
return x_norm
# 定义归一化函数
def normalize(x):
x_min = np.min(x)
x_max = np.max(x)
x_norm = (x - x_min) / (x_max - x_min)
return x_norm
# 加载振动数据
data = np.loadtxt('vibration_data.txt', delimiter=',')
# 对数据进行标准化和归一化
data_norm = normalize(standardize(data))
```
阅读全文