极差法数据标准化 python实现
时间: 2023-08-05 14:08:44 浏览: 92
极差法数据标准化是数据预处理中的一种方法,其目的是将数据按照一定比例缩放到指定区间内。具体实现可以参考以下代码:
```python
import numpy as np
def range_standardization(data, a, b):
# data: 待处理数据,一维或二维数组
# a,b: 目标区间,一般为 [0,1] 或 [-1,1]
max_val = np.max(data, axis=0)
min_val = np.min(data, axis=0)
return (data - min_val) * (b - a) / (max_val - min_val) + a
```
其中,`data` 是待处理数据,可以是一维或二维数组;`a` 和 `b` 是目标区间,一般为 `[0,1]` 或 `[-1,1]`。该函数内部先使用 `np.max` 和 `np.min` 函数计算数据的最大值和最小值,然后根据极差公式将数据缩放到目标区间内。
例如,对于一个一维数组 `[1, 2, 3, 4, 5]`,我们可以使用以下代码进行标准化:
```python
data = np.array([1, 2, 3, 4, 5])
standard_data = range_standardization(data, 0, 1)
print(standard_data) # 输出 [0. 0.25 0.5 0.75 1. ]
```
对于多维数组,同样可以使用该函数进行标准化。例如,对于一个二维数组 `[[1, 2], [3, 4], [5, 6]]`,我们可以使用以下代码进行标准化:
```python
data = np.array([[1, 2], [3, 4], [5, 6]])
standard_data = range_standardization(data, -1, 1)
print(standard_data) # 输出 [[-1. -1. ]
# [ 0. 0.33333333]
# [ 1. 1. ]]
```
注意,该函数假设所有特征都具有相同的重要性,因此不适用于带有权重的数据标准化。在实际应用中,需要根据数据的特点选择合适的标准化方法。