数据清理
数据清理一般分为四个部分:数据去重,错误数据纠正,格式标准化和异常值处理,下面详细介绍以下异常值处理。
异常值处理
异常值处理分为三种类型:缺失值处理,噪声数据处理,离群点。对于离群点最常用的方法就是直接删除,下面介绍一下如何处理缺失值和噪声数据。
缺失值处理
- 直接删除
这种方法适合缺失值数量较小,且是随机出现的,删除它们对整体数据影响不大。 - 使用全局常量填充
譬如,将缺失值用“Unknown”等填充,但该做法的效果未必会好,因为算法可能会将其识别成一个新的类别,因此该方法很少使用。 - 使用均值或中位数填充
这种做法的优点是不会减少样本信息,处理起来较为简单;缺点是当缺失数据不是随机数据时会产生偏差,对于正常分布的数据可以使用均值代替,如果数据是倾斜的,使用中位数的效果可能更好。 - 插补法
常见的插补法有四种:随机插补法、多重插补法、热平台插补、拉格朗日插值法和牛顿插值法。- 随机插补法:从整体中随机抽取某个样本代替缺失样本;
- 多重插补法:通过变量之间的关系对缺失数据进行预测,利用蒙特卡洛方法生成多个完整的数据集,再对这些数据集进行分析,最后对分析结果进行汇总处理。
- 热平台插补:指在非缺失数据集中找到一个与缺失值所在样本相似的样本(匹配样本),利用其中的观测值对缺失值进行插补。热平台插补法简单易行,准确率较高。但当变量数量较多,很难找到与需要插补样本完全相同的样本时应该怎么处理呢?这时候,我们可以按照某些变量将数据分层,在层中对缺失值实行均值插补法。
- 拉格朗日插值法和牛顿插值法(参考1,参考2),拉格朗日插值法和牛顿插值法除了计算方式不同外,还有一点就是拉格朗日插值法每增加一个新的点,都需要重新计算一次,而牛顿插值法每增加一个点,不会导致之前的重新计算,只需要算和新增点有关的就可以了。
- 建模法
建模法指的是使用算法模型对缺失值进行填充,常用的算法有:KNN、回归模型、贝叶斯模型、决策树模型。我们通常令没有变量缺失的数据集作为训练集,而有变量缺失的数据集作为测试集。需要注意的是,建模法的估计值往往会比真实值更好,并且,如果数据集中的属性和缺失值中的属性没有关系,则使用该模型得到的估计值可能会具有较大偏差。
详细介绍一下KNN模型:KNN算法通过寻找与值丢失的属性最相似的属性来估计属性的缺失值,通过距离函数确定两个属性的相识度。- KNN的优点:
a) KNN可以预测定性和定量属性;
b) KNN不需要为缺少数据的每个属性创建预测模型;
c) 对于具有多个缺失值的属性可以轻松处理;d) 数据的相关结构被KNN考虑在内。 - KNN的缺点:
a) KNN算法在分析大数据方面非常耗时,搜索所有的数据集,寻找最相似的实例;
b) K值的选择非常关键,K值较高凸显不了显著性,K值较低会丢失重要属性。
- KNN的优点:
噪声数据处理
处理噪声数据的方法有很多:分箱法、聚类法、计算机和人工检查结合和回归。
-
分箱法
分箱法即首先对数据进行排序,并将它们分到等宽的箱中,然后可以按箱的平均值、中值或边界平滑纠正早上数据。举个例子:
一组数据,排序后分别为:4、8、15、21、21、24、25、28、34。
划分成3个等宽的箱子中:
箱1 : 4、8、15
箱2 : 21、21、24
箱3 : 25、28、34
用箱平均值进行平滑:
箱1 : 9、9、9
箱2 : 22、22、22
箱3 : 29、29、29
用箱边界平滑:
箱1 : 4、4、15
箱2 : 21、21、24
箱3 : 29、29、29 -
聚类法
通过聚类分析查找孤立点,消除噪声:
-
计算机和人工检查结合排查
-
回归
通过构造函数来符合数据变化趋势,这样可以用一个变量预测另外一个变量。回归又分为线性回归和非线性回归两种。