【机器学习】(数值型)数据特征预处理 No.2
特征处理:通过特定的统计方法(数学方法)将数据转换成算法要求的数据。
数值型数据:标准缩放(1、归一化,2、标准化,3、缺失值)
类别型数据:one-hot编码
时间类型:时间的切分
Sklearn特征处理API: sklearn.preprocessing
归一化
特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
Sklearn 归一化API:sklearn.preprocessing.MinMaxScaler
示例:
from sklearn.preprocessing import MinMaxScaler |
执行结果:
F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py [[1. 0. 0. 0. ] [0. 1. 1. 0.83333333] [0.5 0.5 0.6 1. ]] |
将其归一化到【2,3】范围:
|
结果:
F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py [[3. 2. 2. 2. ] [2. 3. 3. 2.83333333] [2.5 2.5 2.6 3. ]] Process finished with exit code 0 |
归一化总结:
注意在特定场景下最大值和最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差。只适合传统精确小数据场景。
标准化
(1)定义:通过对原始数据进行变换把数据变换到均值为0,标准差为1的范围内。
(2)sklearn标准化API:
sklearn.preprocessing.StandardScaler
示例:
|
执行结果:
F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py [[-1.06904497 -1.35873244 0.98058068] [-0.26726124 0.33968311 0.39223227] [ 1.33630621 1.01904933 -1.37281295]] Process finished with exit code 0 |
标准化总结:在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景
- 缺失值处理
(2)sklearn缺失值API:
# sklearn版本0.20之前,请使用Imputer 类,版本0.22(包含0.22)之后的,则使用SimpleImputer
from sklearn.preprocessing import Imputer #sklearn版本0.20之前
from sklearn.impute import SimpleImputer # 版本0.22(包含0.22)之后
SimpleImputer类定义
数据中缺失值np.nan 浮点型。
|
执行结果;
F:\Python\3.7\python.exe E:/PythonProject/Scripts/vector.py [[1. 2. ] [3.5 3. ] [6. 7. ]]
Process finished with exit code 0 |