import torch import matplotlib.pyplot as plt import matplotlib as mpl # randint方法产生2维并且每个维度20个数据 # 数据范围在1-10(不含10) data1 = torch.randint(1, 10,(2,20)).float() print(data1) # 进行Z-SCORE归一化处理 data2 = (data1 - data1.mean()) / data1.std() print(data2) # 对标准化后的数据进行可视化处理 #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行2列的绘图区域,同时 选择在第 1 个位置绘制子图。 plt.subplot(1, 2, 1) #plt.xticks([]), plt.yticks([]) # 隐藏x和y轴 plt.plot(data1[0].numpy(),data1[1].numpy(),"g.") plt.title('原数据') plt.subplot(1, 2, 2) #plt.xticks([]), plt.yticks([]) # 隐藏x和y轴 plt.plot(data2[0].numpy(),data2[1].numpy(),"r.") plt.title('Z-SCORE')
tensor([[4., 2., 2., 1., 2., 3., 8., 6., 1., 4., 2., 4., 3., 8., 4., 8., 5., 3., 8., 8.], [4., 7., 9., 4., 5., 9., 1., 6., 2., 8., 1., 5., 7., 9., 2., 7., 6., 5., 8., 9.]]) tensor([[-0.3746, -1.1237, -1.1237, -1.4982, -1.1237, -0.7491, 1.1237, 0.3746, -1.4982, -0.3746, -1.1237, -0.3746, -0.7491, 1.1237, -0.3746, 1.1237, 0.0000, -0.7491, 1.1237, 1.1237], [-0.3746, 0.7491, 1.4982, -0.3746, 0.0000, 1.4982, -1.4982, 0.3746, -1.1237, 1.1237, -1.4982, 0.0000, 0.7491, 1.4982, -1.1237, 0.7491, 0.3746, 0.0000, 1.1237, 1.4982]])
z分数能够真实的反应一个分数距离平均数的相对标准距离。如果我们把每一个分数都转换成z分数,那么每一个z分数会以标准差为单位表示一个具体分数到平均数的距离或离差。
式中:
X:原始数据。
:平均数。
S: 标准差。