1. 特征工程中目标数据值大小差异太大时,为了不影响后期模型的预测结果及准确率我们通常会对数据进行无量纲化处理:
1.1 这里提到的无量纲化处理(简单讲就是对单位不同的数据进行统一的放缩 为 均值为0,标准差为1的范围,从而可以进行比较于处理)
这里推荐二种方法:
(1). 标准化处理,该方法的优点是:较稳定不会受到数据中异常值的influence
(x - mean)/ std
API:sklearn.preprocessing .StandardScaler()
StandardScaler.fit_transform(x_train)
StandardScaler.transform(x_test)
# 这里x_train为划分数据集后的训练集的特征值
# x_test为训练集中的目标值,需要注意的一个点是:对x_test只进行一个transform的一个转化,因为在上面以及对数据进行了一个fit,所以这里不用再对数据进行放缩处理,直接用上面特征值的数据放缩程度来进行一个转化即可
(2).归一化处理,该方法适用于数据精确 的小数据场景,但很容易收到min和max值的影响所以不适用于数据集中存在极大极小值的场景
(x - min) / max -min
API:sklearn.preporcessing.MinMaxScaler()
transfer = MinMaxScaler()
transfer.fit_transform(x_train)
transfer.transform(x_test)
总结:上述二种无量纲化处理较为常用且适用性比较强的是第一种 标准化处理,
上述二种api中也可以手动传入参数来指定你要缩放数据的一个范围,对其转化器中传入feature_range(0,1) 即代表缩放数据范围为0到1,通过如果你没有特殊需求的请款下用默认范围就行
数据的无量纲化处理是对于单位不同的数据以及差异较大的数据,当然具体情况具体分析哦