【将在后面的应用中来实践应用】
学习目标有四个:
-
无量纲化:最值归一化、均值方差归一化及sklearn中的Scaler
-
缺失值处理
-
处理分类型特征:编码与哑变量
-
处理连续型特征:二值化与分段
相关的参考资料:
关于最值归一化、均值方差归一化及sklearn中的Scaler方面的学习,可以参考:《机器学习的敲门砖:归一化与KD树》及《特征工程系列:特征预处理(上)》(https://mp.weixin.qq.com/s/qWO9zgKyntvyWfftpGqrHQ)中相关部分。
1.数据归一化
在量纲不同的情况下,不能反映样本中每一个特征的重要程度。这就需要数据归一化了。
一般来说,我们的解决方案是:把所有的数据都映射到同一个尺度(量纲)上。
一般来说,常用的数据归一化有两种:
-
最值归一化(normalization): 把所有数据映射到0-1之间。最值归一化的使用范围是特征的分布具有明显边界的(分数0~100分、灰度0~255),受outlier的影响比较大
-
均值方差归一化(standardization): 把所有数据归一到均值为0方差为1的分布中。适用于数据中没有明显的边界,有可能存在极端数据值的情况.
-
-
实现:
-
from sklearn.preprocessing import StandardScaler standardScaler = StandardScaler() # 归一化的过程跟训练模型一样 standardScaler.fit(X_train) standardScaler.mean_ standardScaler.scale_ # 表述数据分布范围的变量,替代std_ # 使用transform X_train_standard = standa