⑴ 分類數據的屬性集
讓我們考察這種方法的一個例子。
例2-7 根據每個屬性的不同值的個數產生概念分層。假定用戶從AllElectronics資料庫中選擇了關於location的屬性集:street, country, province_or_state和city,但沒有指出這些屬性之間的層次序。
location的概念分層可以自動地產生,如圖2-24所示。首先,根據每個屬性的不同值個數,將屬性按升序排列,其結果如下(其中,每個屬性的不同值數目在括弧中):country(15), province_or_state(365), city(3567), street(674 339)。其次,按照排好的次序,自頂向下產生分層,第一個屬性在最頂層,最後一個屬性在最底層。最後,用戶考察所產生的分層,必要時,修改它以反映屬性之間期望的語義聯系。在這個例子中,顯然不需要修改所產生的分層。
圖2-24 基於不同屬性值個數的模式概念分層的自動產生
注意,這種啟發式規則並非完美無缺的。例如,資料庫中的時間維可能包含20個不同的年,12個不同的月,每星期7個不同的天。然而,這並不意味時間分層應當是「year < month < days_of_the_week」,days_of_the_week在分層結構的最頂層。
只說明部分屬性集:在定義分層時,有時用戶可能不小心,或者對於分層結構中應當包含什麼只有很模糊的想法。結果,用戶可能在分層結構說明中只包含了相關屬性的一小部分。例如,用戶可能沒有包含location所有分層相關的屬性,而只說明了street和city。為了處理這種部分說明的分層結構,重要的是在資料庫模式中嵌入數據語義,使得語義密切相關的屬性能夠捆在一起。用這種辦法,一個屬性的說明可能觸發整個語義密切相關的屬性組「拖進」, 形成一個完整的分層結構。然而必要時,用戶應當可以選擇忽略這一特性。 例2-8 使用預先定義的語義關系產生概念分層。假定數據挖掘專家(作為管理者)已將五個屬性number, street, city, province_or_state和country捆綁在一起,因為它們關於location概念語義密切相關。如果用戶在定義location的分層結構時只說明了屬性city,系統可以自動地拖進以上五個語義相關的屬性,形成一個分層結構。用戶可以選擇去掉分層結構中的任何屬性,如number和street,讓city作為該分層結構的最低概念層。