数据归一化(Normalization)是将数据的特征值转换到某个固定的范围内,使其变成统一的尺度,以便于不同特征之间进行比较。
1. 均值归一化:将所有样本的特征值减去该特征的平均值,然后除以标准差,使得特征值的均值为0,方差为1。
代码示例:
python # 均值归一化 def normalize(X): X_norm = np.empty(X.shape) for i in range(X.shape[1]): mean = np.mean(X[:,i]) std = np.std(X[:,i]) X_norm[:,i] = (X[:,i] - mean)/std return X_norm
2. 最大最小值归一化:将所有样本的特征值减去该特征的最小值,然后除以最大值与最小值的差,使得特征值的取值范围在0~1之间。
代码示例:
python # 最大最小值归一化 def minmax_normalize(X): X_norm = np.empty(X.shape) for i in range(X.shape[1]): min = np.min(X[:,i]) max = np.max(X[:,i]) X_norm[:,i] = (X[:,i] - min)/(max-min) return X_norm
3. L1归一化:将所有样本的特征值减去该特征的均值,然后除以L1范数,使得特征值的L1范数为1。
代码示例:
python # L1归一化 def l1_normalize(X): X_norm = np.empty(X.shape) for i in range(X.shape[1]): mean = np.mean(X[:,i]) norm = np.linalg.norm(X[:,i], ord=1) X_norm[:,i] = (X[:,i] - mean)/norm return X_norm
4. L2归一化:将所有样本的特征值减去该特征的均值,然后除以L2范数,使得特征值的L2范数为1。
代码示例:
python # L2归一化 def l2_normalize(X): X_norm = np.empty(X.shape) for i in range(X.shape[1]): mean = np.mean(X[:,i]) norm = np.linalg.norm(X[:,i], ord=2) X_norm[:,i] = (X[:,i] - mean)/norm return X_norm
标签:
评论列表 (0)