ML 系列:机器学习和深度学习的深层次总结(06)— 提升数据质量
一、说明
在AI数据挖掘中,对原始数据的预处理是必须的技术手段,本篇将对数据预处理的一系列注意事项进行展示。
二、关于数据预处理
注意: 在本章中,讨论的技术和方法基于 Roy Jafari 的《Hands-On Data Preprocessing in Python》一书,该书为理解和实施有效的数据预处理工作流提供了有价值的参考。
数据预处理是指在应用机器学习算法之前准备数据以进行分析的技术和过程。这些步骤包括数据清理、数据规范化、数据缩减、将原始数据转换和组织成算法可以轻松使用的格式。数据预处理的目的是提高数据质量、减少噪声并消除任何不一致或可能的错误。
数据清理涉及删除或更正数据中的任何错误、不一致或缺失值。数据转换涉及将数据转换为更适合分析的格式,例如将分类数据转换为数值数据或降低数据的维度。数据规范化涉及缩放数据以确保其位于特定范围内,这对于某些机器学习算法可能很重要。数据集成涉及将来自多个来源的数据合并到单个数据集中。数据缩减涉及通过仅选择最相关的特征或样本来减小数据集的大小。
数据清理的过程可能因项目而异,并且无法提供有关如何执行数据清理的清晰分步说明,但是,我们可以将数据清理过程分为三个级别,如下所示:
三、清理一级
此级别是指数据的明显清理,大多数可用数据不需要此阶段的清理。如果数据集具有以下特征,则我们认为该数据集位于第一级:
-
数据应具有标准结构。
-
列的标题应清晰且可编码。
-
每行数据都有一个唯一的标识符。
这种清理的一个例子可以认为我们有几个文本文件,如下图所示,如图 2 所示,这些数据没有适当的结构,应该以标准格式合并,以便对其进行分析。
在图 3 中,我们将文本数据以集成的方式转换为以下形式。
图 3.集成数据以达到数据清理的一级
在图 3 中,每一行都分配给一个文本文件,现在可以说这些数据处于数据清理的第一级。
四、清理二级
此级别是指 解包、重组和重新构建表。与一级数据清理不同,在一级数据清理中,样品不需要特殊分析,而在此级别的清理中,通常需要进行分析。如前所述,图 3 中的数据处于第一级清洗,如果我们注意每一行的名称,我们可以提取城市、月份和日期的名称,现在如果我们想要第二级清洗数据,具体打开数据的名称, 得到图 4。
图 4. 解压缩数据名称并向数据添加不同的列
在第二级数据清理中,可以进行更多的分析,例如以这样一种方式解包数据内容,即四个词的重复次数 [‘vote’, ‘tax’, ‘campaign’, ‘economy’] 并根据如图 5 所示向数据添加列,作为此分析的结果。
图 5. 解压缩数据内容并向数据添加不同的列
为了进一步分析,可以可视化添加的四列的不同值,如图 6 所示。
图 6. 可视化不同月份四个单词的重复次数
五、结论
在第 1 级中,我们清理了表格,但没有注意数据结构或记录的值。在第 2 级中,我们关注的是拥有一个能够支持我们分析目标的数据结构,但我们仍然没有太多关注记录值的正确性或适当性。这就是数据清理级别 3 的目标。在数据清理级别 III 中,我们将重点关注记录值,并采取措施确保解决与数据中记录的值相关的三个问题。首先,我们将确保检测到数据中的缺失值,我们知道发生这种情况的原因,并已采取适当的措施来解决这些问题。其次,我们将确保我们采取了适当的措施,以确保记录的值是正确的。第三,我们将确定已检测到数据中的极值点,并已采取适当措施解决它们。