最值归一化 normalization
最值归一化:把所有的数据映射到[0,1]之间。
x=x−xminxmax−xmin \large x=\frac{x-x_{min}}{x_{max}-x_{min}} x=xmax−xminx−xmin
下面使用np实现最值归一化。
import numpy as np
import matplotlib.pyplot as plt
#生成数据
X=np.random.randint(0,10,(30,2))
X=np.array(X,dtype=float)
观察归一化之前的数据分布。
plt.scatter(X[:,0],X[:,1])
plt.show()

进行最值归一化。
X[:,0]=(X[:,0]-np.min(X[:,0]))/(np.max(X[:,0])-np.min(X[:,0]))
X[:,1]=(X[:,1]-np.min(X[:,1]))/(np.max(X[:,1])-np.min(X[:,1]))
再次观察分布,可以发现数据都被映射到了[0,1]之间。
plt.scatter(X[:,0],X[:,1])
plt.show()

均值方差归一化 Standardization
x=x−xmeanxstd
\large x=\frac{x-x_{mean}}{x_{std}}
x=xstdx−xmean
均值方差归一化也叫做数据标准化,适用于数据分布没有明显边界的情况:可能存在极端数据。例如,假设100个数据中,99个都分布在[0,100]之间,而剩下的一个大小为10000,那经过最值归一化,10000显然映射为了1,而其他数据则都在[0,0.01]之间。
X=np.random.randint(0,10,(30,2))
X=np.array(X,dtype=float)
plt.scatter(X[:,0],X[:,1])
plt.show()

X[:,0]=(X[:,0]-np.mean(X[:,0]))/np.std(X[:,0])
X[:,1]=(X[:,1]-np.mean(X[:,1]))/np.std(X[:,1])
plt.scatter(X[:,0],X[:,1])
plt.show()

本文介绍了两种数据预处理方法:最值归一化和标准化(均值方差归一化)。最值归一化将所有数据映射到[0,1]区间,适合数据有明确边界的情况;标准化则是通过减去均值并除以标准差,适用于存在极端数据的情况。通过Python的numpy库展示了这两种方法的实现,并用散点图展示归一化前后的数据分布变化。
2万+

被折叠的 条评论
为什么被折叠?



