分类数据(categorical data)是按照现象的某种属性对其进行分类或分组而得到的反映事物类型的数据,又称定类数据。例如,按照性别将人口分为男、女两类;按照经济性质将企业分为国有、集体、
私营、其他经济等。“男”、“女”,“国有”、“集体”、“私营”和“其他经济”就是分类数据。为了便于计算机处理,通常用数字代码来表述各个类别,比如,用1表示“男性”,0表示“女性”,但是1和0等只是数据的代码,它们之间没有数量上的关系和差异。
由用户或专家在模式级显式地说明属性的偏序:通常,分类属性或维的概念分层涉及一组属性。用户或专家在模式级通过说明属性的偏序或全序,可以很容易地定义概念分层。例如,关系数据库或数据仓库的维location可能包含如下属性组:street, city, province_or_state 和country。可以在模式级说明这些属性的全序,如street < city < province_or_state < country, 来定义分层结构。
通过显式数据分组说明分层结构的一部分:这基本上是人工地定义概念分层结构的一部分。在
大型数据库中,通过显式的值枚举定义整个概念分层是不现实的。然而,对于一小部分中间层数据,我们可以很容易地显式说明分组。例如,在模式级说明了province和country形成一个分层后,用户可能人工地添加某些中间层。如“{Albert, Sakatchewan, Manitoba}. prairies_Canada”和“{British Columbia, prairies_Canada} . Western_Canada”。
说明属性集但不说明它们的偏序:用户可以说明一个属性集形成概念分层,但并不显式说明它们的偏序。然后,系统可以尝试自动地产生属性的序,构造有意义的概念分层。“没有数据语义的知识,如何找出任意的分类属性集的分层序?”考虑下面的事实:由于一个较高层的概念通常包含若干从属的较低层概念,定义在高概念层的属性(如country)与定义在较低概念层的属性(如street)相比,通常包含较少数目的不同值。
定属性集中每个属性不同值的个数自动地产生概念分层。具有最多不同值的属性放在分层结构的最低层。一个属性的不同值个数越少,它在所产生的概念分层结构中所处的层次越高。在许多情况下,这种
启发式规则都很顶用。在考察了所产生的分层之后,如果必要,局部层次交换或调整可以由用户或专家来做。
例2-7 根据每个属性的不同值的个数产生概念分层。假定用户从AllElectronics数据库中选择了关于location的属性集:street, country, province_or_state和city,但没有指出这些属性之间的层次序。
location的概念分层可以自动地产生。首先,根据每个属性的不同值个数,将属性按升序排列,其结果如下(其中,每个属性的不同值数目在括号中):country(15), province_or_state(365), city(3567), street(674 339)。其次,按照排好的次序,自顶向下产生分层,第一个属性在最顶层,最后一个属性在最底层。最后,用户考察所产生的分层,必要时,修改它以反映属性之间期望的语义联系。在这个例子中,显然不需要修改所产生的分层。
只说明部分属性集:在定义分层时,有时用户可能不小心,或者对于分层结构中应当包含什么只有很模糊的想法。结果,用户可能在分层结构说明中只包含了相关属性的一小部分。例如,用户可能没有包含location所有分层相关的属性,而只说明了street和city。为了处理这种部分说明的分层结构,重要的是在数据库模式中嵌入数据语义,使得语义密切相关的属性能够捆在一起。用这种办法,一个属性的说明可能触发整个语义密切相关的属性组“拖进”, 形成一个完整的分层结构。然而必要时,用户应当可以选择忽略这一特性。
使用预先定义的语义关系产生概念分层。假定
数据挖掘专家(作为管理者)已将五个属性number, street, city, province_or_state和country捆绑在一起,因为它们关于location概念语义密切相关。如果用户在定义location的分层结构时只说明了属性city,系统可以自动地拖进以上五个语义相关的属性,形成一个分层结构。用户可以选择去掉分层结构中的任何属性,如number和
street,让city作为该分层结构的最低概念层。