数据的预处理一般采用数据清洗的方法来实现。数据预处理是一个去除数据集重复记录,发现并纠正数据错误,并将数据转换成符合标准的过程,从而使数据实现准确性、完整性、一致性、唯一性、适时性、有效性等。一般来说,数据预处理主要包括数据分析、数据检测和数据修正3个步骤,如图6-1所示。
(1)数据分析:是指从数据中发现控制数据的一般规则,比如字段域、业务规则等。通过对数据的分析,定义出数据清理的规则,并选择合适的算法。
(2)数据检测:是指根据预定义的清理规则及相关数据清理算法,检测数据是否正确,比如是否满足字段域、业务规则等,或检测记录是否重复。
(3)数据修正:是指手工或自动地修正检测到的错误数据或重复的记录等。
一般而言,需要进行预处理的数据主要包括数据缺失、数据异常、数据不一致、数据重复、数据格式不符等情况,针对不同问题需要采用不同的数据处理方法。
1.缺失数据的预处理
数据缺失产生的原因主要分为环境原因和人为原因,需要针对不同的原因采取不同的数据预处理方法,常见的方法有删除缺失值、均值填补法、热卡填补法等。删除缺失值是最常见的、简单有效的方法,当样本数很多的时候,并且出现缺失值的样本占整个样本的比例相对较小时,可以将有缺失值的样本直接丢弃。均值填补法是根据缺失值的属性相关系数最大的那个属性把数据分成几个组,再分别计算每个组的均值,用均值代替缺失数值。
热卡填补法通过在数据库中找到一个与包含缺失值变量最相似的对象,然后采用相似对象的值进行数据填充。
缺失数据预处理的其他方法还有最近距离决定填补法、回归填补法、多重填补法、K-最近邻法、有序最近邻法、基于贝叶斯的方法等。
2.异常数据的预处理
对于异常数据或有噪声的数据,如超过明确取值范围的数据、离群点数据,可以采用分箱法和回归法来进行处理。
分箱法通过考察数据的“近邻”(即周围的值)来平滑处理有序的数据值,这些有序的值被分布到一些“桶”或“箱”中,进行局部光滑。一般而言,宽度越大,数据预处理的效果越好。回归法用一个函数拟合数据来光滑数据,消除噪声。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够预测另一个。多线性回归是线性回归的扩展,它涉及多于两个属性,并且数据拟合到一个多维面。
3.不一致数据的预处理
不一致数据是指具有逻辑错误或者数据类型不一致的数据,如年龄与生日数据不符。这一类数据的清洗可以使用人工修改,也可以借助工具来找到违反限制的数据,如知道数据的函数依赖关系,可以通过函数关系修改属性值。但是大部分的不一致情况都需要进行数据变换,即定义一系列的变换纠正数据,有一些商业工具可以提供数据变换的功能,例如数据迁移工具和ETL 工具等。
4.重复数据的预处理
数据本身存在的或数据清洗后可能会产生的重复值。重复值的存在会影响后续模型训练的质量,造成计算及存储浪费。去除重复值的操作一般最后进行,可以使用 Excel、VBA(VisualBasic 宏语言)、Python等工具处理。
5.格式不符数据的预处理
一般人工收集或者应用系统用户填写的数据,容易存在格式问题。一般需要将不同类型的数据内容清洗成统一类型的文件和统一格式,如将TXT、CSV、Excel、HTML 以及PDF清洗成统一的Excel文件,将显示不一致的时间、日期、数值或者内容中有空格、单引号、双引号等情况进行格式的统一调整。
整理不易动动你发财的小手点个“在看”哦!
您的支持是我坚持的动力,谢谢
领取专属 10元无门槛券
私享最新 技术干货