特征预处理,归一化。解决训练样本的特征数值差距过大,各特征数值权重不一致,最终影响模型预测结果。
归一化适合少数据、数据极可靠的场景。
from sklearn.preprocessing import MinMaxScaler ''' 特征预处理,归一化,目的是减少由于各特征的数值差异过大,最终对模型预测结果影响过大 统一之后的特征值范围默认是[0,1]之间 计算公式:特征值x与最小特征值min的差,除以最大特征值max与最小特征值min的差 有时也可以进行扩大特征值至10,不过需要进一步计算 这里有一个要注意的是,计算时是以一列为标准,因为特征就是一列 ''' # 1、准备数据,x是训练集的特征值,不包含目标值 # 这里要注意,特征是一列,但是在输入模型时,仍是以一个样本的方式传入,如[90,2,10,40]是一个样本,即一行,这一行有4列4个特征 x = [[90,2,10,40],[60,4,15,45],[75,3,13,46]] # 2、创建归一化实例 process = MinMaxScaler() # 3、执行归一化处理,并将完成处理的结果返回 data = process.fit_transform(x) # 4、输出特征化预处理的样本特征值 print(data) # 结果返回 ''' [[1. 0. 0. 0. ] [0. 1. 1. 0.83333333] [0.5 0.5 0.6 1. ]] '''