数据挖掘中的数据集是由数据对象构成的集合。数据对象有多种称谓,比如记录、模式、样本、案例等。数据对象有多个属性描述其基本特征。了解常见数据类型有助于描述数据内部特征、规律和趋势等信息,满足模型构建的要求。
属性是数据对象的性质或特性,属性又可称为特征。每一个数据对象用一组属性描述,数据集用结构化数据表表示,其中列是存放在表中的对象的属性,行代表一个对象实例,表中单元格是实例对应属性的属性值。图2-1使用鸢尾花数据集(http://archive.ics.uci.edu/ml/datasets/Iris)来解释对象与属性的基本概念。
图2-1 鸢尾花数据集
属性的度量是样本数据采集中,对样本具体属性记录其测量标度值。例如,天气状况{晴天,多云,阵雨,阴天,小雪};温度(摄氏){24.4,12.2,70.8,69.3};商品的销售数量{300,223,126,408,625}等。
需要注意的是,属性的测量值与属性的值的意义并不是完全对等的,比如数学上24.4是12.2的两倍,但作为摄氏温度值24.4并不代表比12.2温暖两倍。天气属性值中“晴天”和“多云”也可以用不同的数字来表示,它们没有前后次序关系,也不能进行加减运算,只能测试相等或不等才有意义。在数据挖掘中知道属性的类型可以避免使用错误的统计操作。
可以通过以下4种基本操作来确定属性的类型。
(1)相异性:=和≠。
(2)序:≤、≥、<和>。
(3)加减法:+和-。
(4)乘除法:*和/。
按照上面属性测量值可使用的基本操作,可将属性大致分为标称、序数、二元、区间、比率5种类型,如表2-1所示。
表2-1 属性的基本类型
二元属性根据两种状态是否具有同等价值并且携带相同的权重可以分为对称的和非对称的两类。如果两种状态哪一个用0或1编码并无偏好,属于对称的二元属性。如果一个状态出现的概率要远低于另一个状态出现的概率,代表重要的事件发生,那么属于非对称二元属性,如病理化验的阳性和阴性。
数据集的类型是从集合整体上分析数据的类型。本书从数据对象之间的结构关系角度进行划分,比较常见的有记录数据、有序数据、图形数据。
记录数据是最常见的数据集类型,例如一张普通的 Excel 表格文件或一张关系数据库中的表。数据集是一个二维表格,其中表中行代表记录,列代表属性。记录之间没有明显的联系,包括位置关系和相互依赖关系等。数据集中的数据对象可以完全相互独立地使用,可以从数据集里随机抽取一部分数据对象进行挖掘建模,另一部分数据对象用于测试评估。
数据对象之间存在时间或空间上的顺序关系称为有序数据。有序数据有两种类型:时序数据和序列数据。
(1)时序数据一般是由硬件设备或系统监控软件连续采集形成的数据。如股票价格波动信息,医疗仪器监视病人的心跳、血压、呼吸数值,环境传感器连续记录的温度、湿度数值等,在数据挖掘任务中需要考虑这些数值在时间上的前后关系。
时序数据包含了两类属性:一类是表示时间或地理空间的上下文属性,如时间戳或地理坐标;另一类是在上下文属性每个参照点上对应的行为属性,如采集到的温度、湿度等。需要说明的是,两类属性数据需要相互关联起来使用才有意义。
(2)序列数据与时序数据类似,但不包含时间信息。例如,自动化诊断系统会产生包含可用来描述故障信息的离散数据序列;用户上网购物会产生鼠标点击网页的超链接、登录系统、付款结账等操作指令序列,这些信息可以用来挖掘用户的上网习惯。
如果数据对象之间存在显式或隐式的联系,相互之间有一定的复杂依赖关系,构成图形或网状结构,我们把这种数据集称为图形数据。
考虑互联网中网页与网页之间存在超链接,可以把网页看作图中的节点,把它们之间的连接看作图中的边,搜索引擎就是利用网络爬虫不断沿着网页中的超链接进行搜索。类似的还有社交信息,社交软件用户可以看作节点,用户之间的联系看作边。