Python数据预处理技术与实践
上QQ阅读APP看书,第一时间看更新

1.1 Python数据预处理

1.1.1 什么是数据预处理

大数据与人工智能时代离不开海量的原始数据做支撑,这些原始数据存在数据不完整、数据不一致、数据异常等问题,很难得到高质量的数据用于数据建模,甚至可能导致工程应用的偏差。因此,要对原始数据做一定的处理。这种从原始数据到挖掘数据,对数据进行的操作叫作数据预处理。数据预处理通常包括数据清理、数据集成、数据归约、数据变换和数据降维,目的是挖掘数据背后的应用价值和社会价值。

数据预处理通俗地理解就是将原始数据转化为机器可以认知的数据形式,以适应相关技术或者算法模型。比如新闻分类案例中,原始数据是一篇篇的新闻文本,分类器并不能直接处理,需要对新闻文本分词、去除干扰词、提取词特征、词特征转化、词特征降维等操作,分类器才能对数据进行学习优化,实现工程应用。

总而言之,原始数据可能存在数据不完整、数据偏态、数据噪声、数据特征维度高、数据缺失值、数据错误值等一系列问题,经过数据预处理后的数据能够达到数据完整干净、数据特征比重合适、数据特征维度合理、数据无缺失值等优点,使数据利用更加准确、高质。

1.1.2 为什么要做数据预处理

早期互联网时代数据量较少,主要存储在数据库、文件系统等介质中,其数据分析主要靠人工统计完成。随着网络的普及,海量数据应运而生,依旧采用人工统计方法对数据处理已不合时宜。伴随着计算能力和硬件设施的提升,先前的算法理论(如神经网络等)有了用武之地,使得计算机处理海量数据成为当今数据分析人员的主要工作。

在大数据与人工智能的时代,甚至未来的一段时间,不管是无人驾驶还是智能机器人,或是其他应用,主要还是在监督式学习下进行的,这里的监督学习即需要有参考意义的历史数据做基础。这些数据不仅仅是数据库文件、文本文件,还包括视频、语音、网页等各种介质的数据。数据的存在形式呈现多样化,我们将其称之为异源数据,顾名思义指的是来自不同数据源的数据。

异源数据也是最原始的数据,包括人们在网上的任何行为记录。这些行为绝大多数是正确的,但是也可能存在错误。比如,有时候收集数据的设备可能出故障;或者是人为输入错误;数据传输中的错误;命名约定或所用的数据代码不一致导致的错误,等等。如何对这些原始数据进行预处理来提高数据质量?如何通过高质量的数据来挖掘数据背后的价值?这就是为什么要做数据预处理的直观原因之一。

数据价值挖掘的研究工作大多都集中在算法的探讨,而忽视对数据本身的研究。事实上,数据预处理对挖掘数据价值十分重要,一些成熟的算法对其处理的数据集合都有一定的要求:比如数据的完整性好、冗余性小、属性的相关性小等。数据预处理是数据建模的重要一环,且必不可少,要挖掘出有效的知识,必须为其提供干净、准确、简洁的数据。实际应用系统中收集的数据通常是“脏”数据。没有高质量的数据,就没有高质量的挖掘结果。

1.1.3 数据预处理的工作流程

构建新闻分类器时,如何正确有效地将不同数据源中的信息整合到一起,直接影响到分类器的最终结果,数据预处理正是解决这一问题的有力方案。数据预处理包含以下几个方面:

  • 数据采集。指的是从网页、文件库、数据库等多渠道采集数据,这些数据主要以结构化、半结构化和非结构化的形式存在。
  • 数据集成。指的是将从多个数据源中获取到的数据结合起来并统一存储。
  • 文本提取。指的是将不同格式存储的文本信息统一处理,转化为文本格式。
  • 数据清理。指的是通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来清理数据。
  • 数据转换。指的是按照预先设计好的规则对抽取的数据进行转换,如把数据压缩到0.0~1.0区间。
  • 数据归约。数据归约技术可以用来得到数据集的归约表示,它虽然小得多,但仍然接近于保持原数据的完整性。

1.1.4 数据预处理的应用场景

大数据和人工智能技术能够将隐藏于海量数据中的信息和知识挖掘出来,为人类的社会经济活动提供依据,从而提高各个领域的运行效率。其应用领域较为广泛,包括以下领域:

  • 商业智能技术。
  • 政府决策技术。
  • 电信数据信息处理与挖掘技术。
  • 电网数据信息处理与挖掘技术。
  • 气象信息分析技术。
  • 环境监测技术。
  • 警务云应用系统(视频/网络监控、智能交通、反电信诈骗、指挥调度等公安信息系统)。
  • 大规模基因序列分析比对技术。
  • Web信息挖掘技术。
  • 多媒体数据并行化处理技术。
  • 影视制作渲染技术。
  • 其他各种行业的云计算和海量数据处理应用技术等。