-
数据无量纲化
将不同规格的数据转换到同一规格,将不同分布的数据转换到某个特定分布即数据的无量纲化。线性的无量纲化包括中心化(Zero-centered或者Meansubtraction)处理和缩放处理(Scale)。中心化的本质是让所有记录减去一个固定值,即让数据样本数据平移到某个位置。缩放的本质是通过除以一个固定值,将数据固定在某个范围之中,取对数也算是一种缩放处理。
preprocessing.MinMaxScaler 当数据(x)按照最小值中心化后,再按极差(最大值 - 最小值)缩放,数据移动了最小值个单位,并且会被收敛到 [0,1]之间,而这个过程,就叫做数据归一化(Normalization,又称Min-Max Scaling)。注意,Normalization是归 一化,不是正则化,真正的正则化是regularization,不是数据预处理的一种手段。归一化之后的数据服从正态分 布,公式如下: 在sklearn当中,我们使用preprocessing.MinMaxScaler来实现这个功能。MinMaxScaler有一个重要参数, feature_range,控制我们希望把数据压缩到的范围,默认是[0,1]。
-
缺失值处理,均值 0值 均方差 算法填补。sklearn.impute 模块。
着重说下使用算法填补缺失值,比如1-n列是特征,n+1列是标签,遍历所有的特征,从缺失最少的开始进行填补
sortindex = np.argsort(X_missing_rfc.isnull().sum(axis=0)).values从(因为填补缺失最少的特征所需要的准确信息最少)。 填补一个特征时,先将其他特征的缺失值用0代替,每完成一次回归预测,就将预测值放到原本的特征矩阵中,再继续填补下一个特征。每一次填补完毕,有缺失值的特征会减少一个,所以每次循环后,需要用0来填补的特征就越来越少。当 进行到最后一个特征时(这个特征应该是所有特征中缺失值最多的),已经没有任何的其他特征需要用0来进行填补了, 而我们已经使用回归为其他特征填补了大量有效信息,可以用来填补缺失最多的特征。 遍历所有的特征后,数据就完整,不再有缺失值了。 -
处理分类特征,编码与哑变量。编码是针对连续数据,哑变量是指离散数据。
不同的数据类型,基本上3种,比如泰坦尼克数据中的船舱号,是名义变量,不同船舱号之间没有关系,要用OnehotEncoder。第二种比如学历,小学、初中、高中、本科、硕士。它们之间有层次深浅关系,比如硕士>本科,但此深浅不能量化。第三种关系比如体重,135-20=115,135和115之间有数量的关系,称作有距变量。
-
处理连续变量。二值化或者分段(我的理解是较二值化多分几个类)