scikit-learn模块学习笔记(数据预处理模块preprocessing)
本篇文章主要简单介绍sklearn中的数据预处理preprocessing模块,它可以对数据进行标准化。preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到pipeline 过程中。
数据标准化
数据标准化:当单个特征的样本取值相差甚大或明显不遵从高斯正态分布时,标准化表现的效果较差。实际操作中,经常忽略特征数据的分布形状,移除每个特征均值,划分离散特征的标准差,从而等级化,进而实现数据中心化。
公式为:(X-X_mean)/X_std 计算时对每个属性/每列分别进行.
将数据按其属性(按列进行)减去其均值,然后除以其方差。最后得到的结果是,对每个属性/每列来说所有数据都聚集在0附近,方差值为1。
标准化预处理函数:
1.preprocessing.scale(X,axis=0, with_mean=True, with_std=True, copy=True):
将数据转化为标准正态分布(均值为0,方差为1)
2.preprocessing.minmax_scale(X,feature_range=(0, 1), axis=0, copy=True):
将数据在缩放在固定区间,默认缩放到区间 [0, 1]
3.preprocessing.maxabs_scale(X,axis=0, copy=True):
数据的缩放比例为绝对值最大值,并保留正负号,即在区间 [-1.0, 1.0] 内。唯一可用于稀疏数据 scipy.sparse的标准化
4.preprocessing.robust_scale(X,axis=0, with_centering=True, with_scaling=True,copy=True):
通过 Interquartile Range (IQR) 标准化数据,即四分之一和四分