1.2 矩形数据
矩形数据对象是数据科学分析中的典型引用结构,矩形数据对象包括电子表格、数据库表等。
主要术语
数据框
电子表格等矩形数据是统计和机器学习模型中的基本数据结构。
数据特征
通常称数据表中的一列为一个特征。
同义词:属性、输入、预测因子、变量
结果
不少数据科学项目涉及对结果的预测,常见的结果为“是”或“否”(例如表1-1中的“拍卖是否竞价?”)。特征有时在实验或研究中用于预测结果。
同义词:因变量、响应、目标、输出
记录
通常称数据表中的一行为一条记录。
同义词:事例、例子、实例、观察、模式、样本
矩形数据本质上是一个二维矩阵,其中行表示记录(事例),列表示特征(变量)。数据通常并非一开始就是矩阵形式的。例如,文本等非结构化数据必须先经处理和操作,才能表示为矩形数据形式的一系列特征(参见1.1节)。对于很多数据分析和建模任务,存储在关系型数据库中的数据必须先被抽取出来,并置于一张表中。
表1-1显示了测量数据或计数数据(例如“持续时间”和“成交价”)及分类数据(例如“分类”和“货币”)。如上所述,二元变量(例如“是”或“否”,0或1)是一种特殊的分类数据。表1-1的最右一列是一个指标变量,表示拍卖是否进行了竞价。
表1-1:一种常见的数据格式
1.2.1 数据框和索引
传统数据库表会指定一列或多个列为索引。索引可以极大地提高某些SQL查询的效率。在带有pandas数据分析库的Python中,基本的矩形数据结构是DataFrame对象,并且在默认情况下,Python会根据DataFrame对象中行的次序,自动建立一个整数索引。pandas数据分析库支持设置多级或层次索引,以提高特定操作的效率。
在R语言中,基本的矩形数据结构是data.frame对象。data.frame隐含有基于行次序的整数索引。虽然用户可以使用row.names属性创建自定义键值,但是R语言的原生data.frame并不支持自定义索引或多级索引。data.table和dplyr这两个新的R包解决了这一缺陷,因而得到了广泛的使用。它们都支持多级索引,可以显著提高data.frame的使用效率。
术语上的差异
矩形数据的术语可能令人困惑。对于同一事物,统计学家和数据科学家使用了不同的术语。统计学家在模型中使用预测变量去预测一个响应或因变量,而数据科学家使用特征去预测目标。还有一个同义词尤其令人困惑。对于一行数据,计算机科学家使用样本这一术语;而对于统计学家,一个样本意味着一个行的集合。
1.2.2 非矩形数据结构
除了矩形数据之外,还有一些其他类型的数据。
时序数据记录了对同一变量的连续测量值。它是统计预测方法的原始输入数据,也是物联网设备所生成的数据的关键组成部分。
空间数据结构用于地图和定位分析,它比矩形数据结构更为复杂和多变。在对象表示中,空间数据关注的是对象(例如一所房子)及其空间坐标。与之形成对比的是,字段视图关注空间中的小单元及相关的度量值(例如像素点的亮度)。
图形(或网络)数据结构用于表示物理上的、社交网络上的和抽象的关系。例如,Facebook或LinkedIn等社交网络图表示了人们在网络上的相互联系;由道路连接在一起的分布汇聚点构成了一个物理网络的例子。图形结构对于某些类型的问题十分有用,例如网络优化和推荐系统。
在数据科学中,每种数据类型都有其独特的方法论。本书关注的是矩形数据,它是预测建模的基本构件。
统计学中的图形
在计算机科学和信息技术中,图形通常指对实体间关联情况的描述及底层的数据结构。在统计学中,图形用于指代各种绘图和可视化结果,而不仅仅是指实体间的关联情况。这一术语只用于指代可视化,而非数据结构。
本节要点
· 矩阵是数据科学中的基本数据结构。在矩阵中,行是记录,列是变量(特征)。
· 术语中会存在一些令人困惑之处。在与数据科学相关的各学科中,例如统计学、计算机科学和信息技术等,存在着一系列的同义词。
1.2.3 拓展阅读
· R语言中数据框的相关文档。
· Python数据框的相关文档。