当我们在学习数据挖掘算法或者机器学习算法时,我们都会发现某些算法只能应用于特定的数据类型,所以在学习数据挖掘算法或者机器学习算法前我们需要对数据类型的属性度量有一个很清晰的了解,如果在数据类型这一步就出现问题,不管算法再怎么优异肯定也是白搭!!
2.1.1 属性与度量
本节我们考虑使用何种类型的属性描述数据对象,来处理描述数据的问题。我们首先定义属性,然后考虑属性类型的含义,最后介绍经常遇到的属性类型。
1. 什么是属性
我们先更详细地定义属性。
定义2.1 属性(attribute)是对象的性质或特性,它因对象而异,或随时间而变化。
例如,眼球颜色因人而异,而物体的温度随时间而变。注意:眼球颜色是一种符号属性,具有少量可能的值{棕色,黑色,蓝色,绿色,淡褐色,……},而温度是数值属性,可以取无穷多个值。
追根溯源,属性并非数字或符号。然而,为了讨论和精细地分析对象的特性,我们为它们赋予了数字或符号。为了用一种明确定义的方式做到这一点,我们需要测量标度。
定义2.2 测量标度(measurement scale)是将数值或符号值与对象的属性相关联的规则(函数)。
形式上,测量过程是使用测量标度将一个值与一个特定对象的特定属性相关联。这看上去有点抽象,但是任何时候,我们总在进行这样的测量过程。例如,踏上浴室的磅秤称体重;将人分为男女;清点会议室的椅子数目,确定是否能够为所有与会者提供足够的座位。在所有这些情况下,对象属性的"物理值"都被映射到数值或符号值。
有了这些背景,现在我们可以讨论属性类型,这对于确定特定的数据分析技术是否适用于某种具体的属性是一个重要的概念。
2. 属性类型
从前面的讨论显而易见,属性的性质不必与用来度量它的值的性质相同。换句话说,用来代表属性的值可能具有不同于属性本身的性质,并且反之亦然。我们用两个例子解释。
例2.3 雇员年龄和ID号 与雇员有关的两个属性是ID和年龄,这两个属性都可以用整数表示。然而,谈论雇员的平均年龄是有意义的,但是谈论雇员的平均ID却毫无意义。的确,我们希望ID属性所表达的唯一方面是它们互不相同。因而,对雇员ID的唯一合法操作就是判定它们是否相等。但在使用整数表示雇员ID时,并没暗示有此限制。对于年龄属性而言,用来表示年龄的整数的性质与该属性的性质大同小异。尽管如此,这种对应仍不完备,例如,年龄有最大值,而整数没有。
属性的类型告诉我们,属性的哪些性质反映在用于测量它的值中。知道属性的类型是重要的,因为它告诉我们测量值的哪些性质与属性的基本性质一致,从而使得我们可以避免诸如计算雇员的平均ID这样的愚蠢行为。注意,通常将属性的类型称作测量标度的类型。
3. 属性的不同类型
一种指定属性类型的有用(和简单)的办法是,确定对应于属性基本性质的数值的性质。例如,长度的属性可以有数值的许多性质。按照长度比较对象,确定对象的排序,以及谈论长度的差和比例都是有意义的。数值的如下性质(操作)常常用来描述属性。
(1) 相异性 = 和 。
(2) 序 <、≤、>和≥。
(3) 加法 和 。
(4) 乘法 和 。
给定这些性质,我们可以定义四种属性类型:标称(nominal)、序数(ordinal)、区间(interval)和比率(ratio)。表2-2给出这些类型的定义,以及每种类型上有哪些合法的统计操作等信息。每种属性类型拥有其上方属性类型上的所有性质和操作。因此,对于标称、序数和区间属性合法的任何性质或操作,对于比率属性也合法。换句话说,属性类型的定义是累积的。当然,对于某种属性类型合适的操作,对其上方的属性类型就不一定合适。
表2-2 不同的属性类型
标称和序数属性统称分类的(categorical)或定性的(qualitative)属性。顾名思义,定性属性(如雇员ID)不具有数的大部分性质。即便使用数(即整数)表示,也应当像对待符号一样对待它们。其余两种类型的属性,即区间和比率属性,统称定量的(quantitative)或数值的(numeric)属性。定量属性用数表示,并且具有数的大部分性质。注意:定量属性可以是整数值或连续值。
属性的类型也可以用不改变属性意义的变换来描述。实际上,心理学家S. Smith Stevens最先用允许的变换(permissible transformation)定义了表2-2所示的属性类型。例如,如果长度分别用米和英尺度量,其属性的意义并未改变。
对特定的属性类型有意义的统计操作是这样一些操作,当使用保持属性意义的变换对属性进行变换时,它们产生的结果相同。例如,用米和英尺为单位进行度量时,同一组对象的平均长度数值是不同的,但是两个平均值都代表相同的长度。表2-3给出表2-2中四种属性类型的允许的(保持意义的)变换。
表2-3 定义属性层次的变换
例2.5 温度标度 温度可以很好地解释前面介绍的一些概念。首先,温度可以是区间属性或比率属性,这取决于其测量标度。当温度用绝对标度测量时,从物理意义上讲,2°的温度是1°的两倍;当温度用华氏或摄氏标度测量时则并非如此,因为这时1°温度与2°温度相差并不太多。问题是从物理意义上讲,华氏和摄氏标度的零点是硬性规定的,因此,华氏或摄氏温度的比率并无物理意义。
4. 用值的个数描述属性
区分属性的一种独立方法是根据属性可能取值的个数来判断。
离散的(discrete)离散属性具有有限个值或无限可数个值。这样的属性可以是分类的,如邮政编码或ID号,也可以是数值的,如计数。通常,离散属性用整数变量表示。二元属性(binary attribute)是离散属性的一种特殊情况,并只接受两个值,如真/假、是/否、男/女或0/1。通常,二元属性用布尔变量表示,或者用只取两个值0或1的整型变量表示。
连续的(continuous)连续属性是取实数值的属性。如温度、高度或重量等属性。通常,连续属性用浮点变量表示。实践中,实数值只能用有限的精度测量和表示。
从理论上讲,任何测量标度类型(标称的、序数的、区间的和比率的)都可以与基于属性值个数的任意类型(二元的、离散的和连续的)组合。然而,有些组合并不常出现,或者没有什么意义。例如,很难想象一个实际数据集包含连续的二元属性。通常,标称和序数属性是二元的或离散的,而区间和比率属性是连续的。然而,计数属性(count attribute)是离散的,也是比率属性。
5. 非对称的属性
对于非对称的属性(asymmetric attribute),出现非零属性值才是重要的。考虑这样一个数据集,其中每个对象是一个学生,而每个属性记录学生是否选修大学的某个课程。对于某个学生,如果他选修了对应于某属性的课程,该属性取值1,否则取值0。由于学生只选修所有可选课程中的很小一部分,这种数据集的大部分值为0。因此,关注非零值将更有意义、更有效。否则,如果在学生们不选修的课程上作比较,则大部分学生都非常相似。只有非零值才重要的二元属性是非对称的二元属性。这类属性对于关联分析特别重要。关联分析在第6章讨论。也可能有离散的或连续的非对称特征。例如,如果记录每门课程的学分,则结果数据集将包含非对称的离散属性或连续属性。