最大最小归一化的代码解释
最大最小归一化,顾名思义,就是利用数据列中的最大值和最小值进行标准化处理,标准化后的数值处于[0,1]之间,计算方式为数据与该列的最小值作差,再除以极差。
具体公式为:
x′=x−minmax−minx′=max−minx−min
公式中x ’ x’x’表示单个数据的取值,m i n minmin是数据所在列的最小值,m a x maxmax是数据所在列的最大值。
最大最小归一化容易受极端值的影响,当某列数据中存在极端值时,可以根据实际的业务场景,考虑事先将极端值或异常值剔除,或者是对标准化后的数据进行变换,如取对数等,使得变换后的数据接近于正态分布。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Nov 19 09:21:35 2021 @author: Li huanyu """ # 最大值最小值归一化:(X-Xmin)/(Xmax-Xmin) import numpy as np import matplotlib.pyplot as plt x = np.random.rand(100) x = x.reshape(-1, 1) rand = np.random.rand(100) * np.random.randint(10) rand = rand.reshape(-1, 1) # 获取Xmax,Xmin x_max = np.max(rand) x_min = np.min(rand) result = [] # 查找数组的索引:np.where(rand == i) for i in rand: result.append((float(i[0]) - x_min)/(x_max - x_min)) result = np.array(result, dtype = float) #转化为numpy形式 result = result.reshape(-1, 1) # 可视化 plt.plot(x, rand, "r.", label="native") plt.plot(x, result, "b.", linewidth=2, label="normalized") plt.legend(loc="upper left") plt.grid() plt.show()
图像展示: