- 数据预处理:目的是为了提高数据质量,使数据挖掘的过程更加有效,更加容易,同时也提高挖掘结果的质量。数据预处理的对象主要是清理其中的噪声数据、空缺数据和不一致数据。
- 特征工程:降低计算成本、提升模型上限
- 模块 preprocessiong: 几乎包含了所有预处理的所有内容
- 模块 Impute:填补缺失值专用
目录:
1、无量纲化
- 线性:中心化处理、缩放处理
- 中心化处理:中心化的本质是让所有记录减去一个固定值,让所有的数据平移到某个位置。
- 缩放处理:缩放的本质是通过处以一个固定值,将数据固定在某个范围之内,取对数也算是一种缩放处理。
- 非线性
2、缺失值
3、处理连续特征
4、生成多项式特征
5、自定义转换器
6、编码分类特征
一、无量纲化
1、线性变换
sklearn.preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True)
通过减掉均值并将数据缩放到单位方差来标准化特征,标准化完后的特征符合标准正态分布,即方差为1, 均值为0.
sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)
通过最大值最小值将每个特征缩放到给定范围,默认为[0,1]。
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min
sklearn.preprocessing.MaxAbsScaler(copy=True)
通过让每一个特征里的数据,除以该特征中绝对值最大的数值,将数据缩放到[-1,1]。这种做法并没有中心化数据,因此不会破坏数据的稀疏性。
sklearn.preprocessing.RobustScaler