数据归一化与反归一化python代码
时间: 2023-09-12 20:03:11 浏览: 78
数据归一化(Min-Max normalization)通常使用以下公式:
$$x_{norm} = \frac{x - x_{min}}{x_{max} - x_{min}}$$
其中,$x$是原始数据,$x_{min}$和$x_{max}$分别是数据集中的最小值和最大值。归一化后的数据$x_{norm}$的值域为$[0, 1]$。
反归一化的公式如下:
$$x = x_{norm} \times (x_{max} - x_{min}) + x_{min}$$
下面是归一化和反归一化的Python代码示例:
```python
import numpy as np
# 归一化函数
def min_max_normalize(x):
x_min = np.min(x)
x_max = np.max(x)
x_norm = (x - x_min) / (x_max - x_min)
return x_norm, x_min, x_max
# 反归一化函数
def min_max_denormalize(x_norm, x_min, x_max):
x = x_norm * (x_max - x_min) + x_min
return x
# 测试
x = np.array([1, 2, 3, 4, 5])
x_norm, x_min, x_max = min_max_normalize(x)
print(x_norm) # [0. 0.25 0.5 0.75 1. ]
x_denorm = min_max_denormalize(x_norm, x_min, x_max)
print(x_denorm) # [1. 2. 3. 4. 5.]
```
在这个示例中,我们使用了NumPy库。归一化函数min_max_normalize()接受一个NumPy数组x作为输入,并返回一个归一化后的数组x_norm,以及数据集中的最小值和最大值。反归一化函数min_max_denormalize()接受归一化后的数组x_norm以及最小值和最大值作为输入,并返回反归一化后的原始数组x。
阅读全文