PyTorch Min-Max 归一化处理

PyTorch Min-Max 归一化处理

import torch
import matplotlib.pyplot as plt
import matplotlib as mpl

# randint方法产生2维并且每个维度20个数据
data1 = torch.randint(1, 10,(2,20)).float()
print(data1)
# 进行Z-SCORE归一化处理
data2 = (data1 - data1.mean()) / data1.std()
print(data2)
# Min-Max归一化处理
data3 = (data1 - data1.min()) /(data1.max()-data1.min())
print(data3)

# 对标准化后的数据进行可视化处理
#plt.plot(data1[0].numpy(),data1[1].numpy(),"r.")

# 解决plt 画图中文不显示问题
mpl.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体为黑体
mpl.rcParams['axes.unicode_minus'] = False  # 正常显示负号

# 显示图像
# plt.subplot(nrows, ncols, index)
# 表示在当前画布的右上角创建一个1行3列的绘图区域,同时 选择在第 1 个位置绘制子图。
plt.subplot(1, 3, 1)
#plt.xticks([]), plt.yticks([])  # 隐藏x和y轴
plt.plot(data1[0].numpy(),data1[1].numpy(),"g.")
plt.title('原数据')

plt.subplot(1, 3, 2)
#plt.xticks([]), plt.yticks([])  # 隐藏x和y轴
plt.plot(data2[0].numpy(),data2[1].numpy(),"r.")
plt.title('Z-SCORE')

plt.subplot(1, 3, 3)
#plt.xticks([]), plt.yticks([])  # 隐藏x和y轴
plt.plot(data3[0].numpy(),data3[1].numpy(),"b.")
plt.title('Min-Max')
tensor([[5., 2., 8., 3., 5., 5., 6., 5., 6., 7., 7., 3., 9., 5., 7., 6., 8., 3.,
         6., 7.],
        [9., 5., 7., 5., 4., 6., 5., 7., 9., 3., 6., 3., 9., 3., 8., 1., 2., 2.,
         3., 9.]])
tensor([[-0.2098, -1.5346,  1.1151, -1.0930, -0.2098, -0.2098,  0.2318, -0.2098,
          0.2318,  0.6735,  0.6735, -1.0930,  1.5567, -0.2098,  0.6735,  0.2318,
          1.1151, -1.0930,  0.2318,  0.6735],
        [ 1.5567, -0.2098,  0.6735, -0.2098, -0.6514,  0.2318, -0.2098,  0.6735,
          1.5567, -1.0930,  0.2318, -1.0930,  1.5567, -1.0930,  1.1151, -1.9762,
         -1.5346, -1.5346, -1.0930,  1.5567]])
tensor([[0.5000, 0.1250, 0.8750, 0.2500, 0.5000, 0.5000, 0.6250, 0.5000, 0.6250,
         0.7500, 0.7500, 0.2500, 1.0000, 0.5000, 0.7500, 0.6250, 0.8750, 0.2500,
         0.6250, 0.7500],
        [1.0000, 0.5000, 0.7500, 0.5000, 0.3750, 0.6250, 0.5000, 0.7500, 1.0000,
         0.2500, 0.6250, 0.2500, 1.0000, 0.2500, 0.8750, 0.0000, 0.1250, 0.1250,
         0.2500, 1.0000]])

min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x’,其公式为:

新数据=(原数据-最小值)/(最大值-最小值)

发表回复

您的电子邮箱地址不会被公开。