数据预处理主要包括数据清洗、数据集成、数据变换和数据规约四个部分。
1. 数据清洗
1.1 缺失值处理
缺失值一般由NA表示,在处理缺失值时要遵循一定的原则。
首先,需要根据业务理解处理缺失值,弄清楚缺失值产生的原因是故意缺失还是随机缺失,再通过一些业务经验进行填补。一般来说当缺失值少于20%时,连续变量可以使用均值或中位数填补;分类变量不需要填补,单算一类即可
当缺失值处于20%-80%之间时,填补方法同上。另外每个有缺失值的变量可以生成一个指示哑变量,参与后续的建模。当缺失值多于80%时,每个有缺失值的变量生成一个指示哑变量,参与后续的建模,不使用原始变量。
在下图中展示了中位数填补缺失值和缺失值指示变量的生成过程。
Pandas提供了fillna方法用于替换缺失值数据,其功能类似于之前的replace方法
pandas数据框对象可以直接调用方法isnull产生缺失值指示变量
发现:通过describe与len直接发现、通过0数据发现
处理:删除、插补(插补的方式主要有:均值插补、中位数插补、众数插补、固定值插补、最近数据插补、回归插补、插值法[拉格朗日插值法,牛顿插值法]等等)
拉格朗日插值法的推导过程可参考下面文献:
1.2 噪声值处理
噪声值指数据中有一个或几个数值与其他数值相比差异较大,