首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

清理、处理和可视化数据集,第 1 部分 处理散乱数据-1

清理、处理和可视化数据集,第 1 部分 处理散乱数据-1

数据具有许多形式,数据散乱无章。无论我们谈论的是缺失数据、非结构化数据还是缺乏常规结构的数据,都需要采用某些方法对数据执行清理,然后才能处理数据以改进数据质量。本教程探索处理实际数据的一些重要问题,以及可以应用的方法。
本系列包含 3 部分,本文是第 1 部分,该部分探索散乱数据的问题和可用来提高数据集质量的方法(参见图 1)。第 2 和 3                部分将继续介绍使用机器学习和数据可视化执行数据分析。
图 1. 从清理到学习和可视化的数据处理流程数据科学及其算法简洁且精确,但它们处理的数据来自真实世界,这意味着这些数据是散乱的,需要一定的预处理才能有效地使用。从数据获取的洞察的质量取决于数据的有效性,所以必须执行一定的预处理。
数据清理在数据库中有着悠久的历史,是提取、转换、加载 (ETL) 过程中的关键一步。ETL                通常用在数据仓库中,这里的数据提取自一个或多个来源;转换为适当的格式和结构,包括执行数据清理;最后加载到最终目标位置,比如一个数据库或文件。
我们首先讨论拥有散乱数据意味着什么,然后深入剖析一些解决散乱的方法。
散乱数据是什么?无论大小,数据集很少可以直接使用。如图 2 所示,我的简单的逗号分隔值 (CSV)                数据集存在各种各样的问题,包括无效字段、缺失和多余值,以及其他问题,这些问题导致我尝试解析此文件来供机器学习算法使用时出错。
图 2. 一个简单的散乱数据集示例
这个示例很简单,但任何处理过公共数据集的人都会理解这些问题,明白预处理数据以使其可供使用的必要性。存在这些明显错误的数据集,会导致处理后的数据的结果不可靠。包含错误的观察值会导致数据不完整,或者无效的观察值会导致结果错误。因此,清理数据是数据处理流程中的关键一步。
数据也可能来自多个来源。尽管每个单独的来源可能是有效的,但将数据汇集在一起可能需要执行一致性和统一性处理。例如,一个数据集可能为不同给定字段采用了不同度量单位,这就需要对它们执行规范化。
数据有效性的一个关键因素是表示数据的格式。接下来讲讲此因素。
数据格式和模式数据集可能有许多形式,但大部分都存储为分隔文本文件。如前面的示例所示,这些数据集使用一个字符(通常是一个逗号)来分隔它们的字段,但在其他情况下可能通过空白(空格、制表符等)来分隔。这些原始数据集特别容易出错,因为它们缺乏任何表明结构的信息,所以需要数据科学家对数据集进行人工解释。
所称的“自描述格式”能显著提高我们正确维护数据的能力。这些格式包括 XML 和                JSON。这些数据格式允许将数据嵌入在元数据中,让它可在单个文件内充分地自我描述。它们还支持复杂的数据格式,这些格式更难通过简单的纯文本文件来描述(比如数据的变量数组或数据内的关系)。
图 3 展示了如何使用 JSON 格式表示温度数据。如图所示,数据带有标签,标签已经过预定义,以便摄取工具能理解需要何种数据。
图 3. 使用 JSON 格式对一个数据集进行自描述在这个示例中,使用自描述格式的缺点显露无遗。与自描述格式相比,在简单纯文本文件中,数据更小。尽管如此,确实存在能通过少得多的开销来实现自描述的二进制格式,但是                CSV 或其他纯文件文本格式的简单性占据了优势,这得益于它们在解析上的简单性。可以为纯文件文本数据集定义模式,如示例应用程序所示。
数据混合或融合通过数据混合流程,可从两个或多个独立数据集构造一个数据集。混合数据可能不是一次性流程;它可以基于机器学习用例而按需执行。
混合数据存在目前讨论的所有问题 —                也就是说有清理多个数据源的必要性。但是,在每个来源中的数据表示上,融合多个数据集还存在其他问题(比如一个数据集使用摄氏度,另一个数据集使用开尔文,如下图所示)。各个来源中的数据可能不一致,可能需要转换并重新排序数据字段,以便能够正确使用融合的数据。
图 4. 混合并转换两个数据集
数据清理方法数据清理始于数据解析,也即从数据文件获取每个观察值并提取每个独立元素。如果记录相似(元素数量相同、类型相似等),则可以轻松地确定解析方法。
给定一个模式— 也即数据观察值的一种高级表示 —                的定义,可以对观察值执行类型检查,确保它与模式及用户对后续数据分析的期望相符。例如,假如您打算对给定字段执行数字运算,请确保该位置包含一个数字而不是字符串。模式也可以告诉您,是否为每个观察值表示了正确数量的字段(如果不是,您就会认识到数据集可能存在缺陷)。
一些数据清理应用程序允许通过函数构造规则,以允许更复杂的数据转换 —                例如,查询字段以基于它们的内容来创建或修改其他字段。规则还可以验证观察值的一致性(如果可能),以便删除无效数据或转换数据来提高准确性                — 例如,将美国邮政编码从 5 位数修改为增强的 9 位数。
也可以识别重复,但已有一些处理数据集中的重复观察值的应用程序,所以消除重复并不总是必需或必要的。
当一个数据集的语法正确时,就可以应用各种方法来确保数据的语义也正确。接下来我们将探索执行这一步的一种方法。
返回列表