上面就是特征工程所要做的事,下面我们就只针对特征预处理来做一个介绍:
特征工程——特征预处理
1.1 什么是特征预处理
1.1.1 特征预处理定义
scikit-learn的解释
provides several common utility functions and transformer classes to change raw feature vectors into a representation that is more suitable for the downstream estimators.
翻译过来:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
- 为什么我们要进行归一化/标准化?
- 特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征
举例:约会对象数据:
我们需要用到一些方法进行无量纲化,使不同规格的数据转换到同一规格
1.1.2 包含内容(数值型数据的无量纲化)
- 归一化
- 标准化
1.1.3 特征预处理API
sklearn.preprocessing
1.2 归一化
1.2.1 定义
通过对原始数据进行变换把数据映射到(默认为[0,1])之间
1.2.2 公式
作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0
1.2.3 API
sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
- MinMaxScalar.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features] - 返回值:转换后的形状相同的array
- MinMaxScalar.fit_transform(X)
1.2.4 数据计算
我们对以下数据进行运算。保存的就是之前的约会对象数据
milage,Liters,Consumtime,target
40920,8.326976,0.953952,3
14488,7.153469,1.673904,2
26052,1.441871,0.805124,1
75136,13.147394,0.428964,1
38344,1.669788,0.134296,1
- 分析
1、实例化MinMaxScalar
2、通过fit_transform转换
import pandas as pd
from sklearn.