1. 对样本特征进行归一化处理,减少某一数值太大的特征对其他较小特征的影响
将特征值的取值范围转化为0到1区间内。
import numpy as np
# 公式:newValue = (oldValue-min)/(max)
group=np.array([ [1, 7, 3],
[1, 3, 1],
[0, 5, 8],
[2, 7, 3]])
minVals = group.min(0) # 为0时:求每列的最小值[0 3 1] .shape=(3,)
maxVals = group.max(0) # 为0时:求每列的最大值[2 7 8] .shape=(3,)
ranges = maxVals - minVals
m = group.shape[0]
normDataSet = np.zeros(np.shape(group)) # np.shape(group) 返回一个和group一样大小的数组,但元素都为0
diffnormData =group - np.tile(minVals,(m,1)) # (oldValue-min) 减去最小值
normDataSet1 =diffnormData / np.tile(ranges,(m,1))
print(minVals) # 打印最小值 [0 3 1]
print(maxVals) # 打印最大值 [2 7 8]
print(normDataSet1)
# 打印归一化后的数值
"""
[[0.5 1. 0.28571429]
[0.5 0. 0. ]
[0. 0.5 1. ]
[1. 1. 0.28571429]]
"""