大數(shù)據(jù)新手教程:離散化和數(shù)值概念層次樹簡(jiǎn)介
離散化技術(shù)方法可以通過將屬性(連續(xù)取值)域值范圍分為若干區(qū)間,來幫助消減一個(gè)連續(xù)(取值)屬性的取值個(gè)數(shù)??梢杂靡粋€(gè)標(biāo)簽來表示一個(gè)區(qū)間內(nèi)的實(shí)際數(shù)據(jù)值。在基于決策樹的分類挖掘中,消減屬性取值個(gè)數(shù)的離散化處理是一個(gè)極為有效的數(shù)據(jù)預(yù)處理步驟。
圖 1 所示是一個(gè)年齡屬性的概念層次樹。概念層次樹可以通過利用較高層次概念替換低層次概念(如年齡的數(shù)值)來減少原有數(shù)據(jù)集的數(shù)據(jù)量。雖然一些細(xì)節(jié)在數(shù)據(jù)泛化過程中消失了,但這樣所獲得的泛化數(shù)據(jù)或許會(huì)更易于理解、更有意義。在消減后的數(shù)據(jù)集上進(jìn)行數(shù)據(jù)挖掘顯然效率更高。
數(shù)值概念層次樹
由于數(shù)據(jù)的范圍變化較大,所以構(gòu)造數(shù)值屬性的概念層次樹是一件較為困難的事情。利用數(shù)據(jù)分布分析,可以自動(dòng)構(gòu)造數(shù)值屬性的概念層次樹。其中,主要的幾種構(gòu)造方法如下。
1. Bin 方法
Bin 方法是一種離散化方法。例如,屬性的值可以通過將其分配到各 Bin 中而將其離散化。利用每個(gè) Bin 的均值和中位數(shù)替換每個(gè) Bin 中的值(利用均值或中位數(shù)進(jìn)行平滑),并循環(huán)應(yīng)用這些操作處理每次的操作結(jié)果,就可以獲得一個(gè)概念層次樹。

圖 1 年齡屬性的概念層次樹
2. 直方圖方法
直方圖方法也可以用于離散化處理。例如,在等寬直方圖中,數(shù)值被劃分為等大小的區(qū)間,如(0,100],(100,200],…,(900,1000]。
循環(huán)應(yīng)用直方圖方法處理每次的劃分結(jié)果,當(dāng)達(dá)到用戶指定層次水平后結(jié)束劃分,最終可自動(dòng)獲得多層次概念樹。最小間隔大小也可以幫助控制循環(huán)過程,包括指定一個(gè)劃分的最小寬度或指定每一個(gè)層次的每一劃分中數(shù)值的個(gè)數(shù)等。
3. 聚類分析方法
聚類分析方法可以將數(shù)據(jù)集劃分為若干類或組。每個(gè)類構(gòu)成了概念層次樹的一個(gè)結(jié)點(diǎn),每個(gè)類還可以進(jìn)一步分解為若干子類,從而構(gòu)成更低水平的層次。當(dāng)然類也可以合并起來構(gòu)成更高水平的層次。
4. 基于熵的方法
利用基于熵的方法構(gòu)造數(shù)值概念層次樹可以消減數(shù)據(jù)集規(guī)模。與其他方法不同的是,基于熵的方法利用了類別信息,這就使得邊界的劃分更加有利于改善分類挖掘結(jié)果的準(zhǔn)確性。
5. 自然劃分分段方法
盡管 Bin 方法、直方圖方法、聚類方法和基于熵的方法均可以幫助構(gòu)造數(shù)值概念層次樹,但許多時(shí)候用戶仍然將數(shù)值區(qū)間劃分為歸一的、易讀懂的間隔,以使這些間隔看起來更加自然直觀。
例如,將年收入數(shù)值屬性取值區(qū)域分解為[50000,60000]區(qū)間要比利用復(fù)雜聚類分析所獲得的[51265,60324]區(qū)間直觀得多。
類別概念層次樹
類別數(shù)據(jù)是一種離散數(shù)據(jù)。類別屬性可取有限個(gè)不同的值且這些值之間無大小和順序,如國(guó)家、工作、商品類別等。
構(gòu)造類別屬性的概念層次樹的主要方法有以下幾種。
1)屬性值的順序關(guān)系已在用戶或?qū)<抑付ǖ哪J蕉x中說明。構(gòu)造屬性(或維)的概念層次樹會(huì)涉及一組屬性,在(數(shù)據(jù)庫(kù))模式定義時(shí)指定各屬性的有序關(guān)系,可以有助于構(gòu)造出相應(yīng)的概念層次樹。
例如,一個(gè)關(guān)系數(shù)據(jù)庫(kù)中的地點(diǎn)屬性將會(huì)涉及以下屬性:街道、城市、省和國(guó)家。根據(jù)(數(shù)據(jù)庫(kù))模式定義時(shí)的描述,可以很容易地構(gòu)造出(含有順序語義)層次樹,即街道<城市<省<國(guó)家。
2)通過數(shù)據(jù)聚合來描述層次樹。這是概念層次樹的一個(gè)主要(手工)構(gòu)造方法。在大規(guī)模數(shù)據(jù)庫(kù)中,通過窮舉所有值而構(gòu)造一個(gè)完整的概念層次樹是不切實(shí)際的,但可以通過對(duì)其中的一部分?jǐn)?shù)據(jù)進(jìn)行聚合來描述層次數(shù)。例如,在模式定義基礎(chǔ)上構(gòu)造了省和國(guó)家的層次樹,這時(shí)可以手工加入{安徽、江蘇、山東}? 華東地區(qū)和{廣東、福建}? 華南地區(qū)等“地區(qū)”中間層次。
3)定義一組屬性但不說明其順序。用戶可以簡(jiǎn)單將一組屬性組織在一起以便構(gòu)成一個(gè)層次樹,但不說明這些屬性的相互關(guān)系。這就需要自動(dòng)產(chǎn)生屬性順序以便構(gòu)造一個(gè)有意義的概念層次樹。
沒有數(shù)據(jù)語義的知識(shí),想要獲得任意一組屬性的順序關(guān)系是很困難的。一個(gè)重要線索就是,高層次概念通常包含了若干低層次概念。定義屬性的高層次概念通常比低層次概念包含少一些的不同值。根據(jù)這一線索,就可以通過給定屬性集中每個(gè)屬性的一些不同值自動(dòng)構(gòu)造一個(gè)概念層次樹。
擁有最多不同值的屬性被放到層次樹的最低層,擁有的不同值數(shù)目越少的屬性在概念層次樹上所放的層次越高。這條啟發(fā)知識(shí)在許多情況下的工作效果都很好。用戶或?qū)<以诒匾獣r(shí),可以對(duì)所獲得的概念層次樹進(jìn)行局部調(diào)整。
假設(shè)用戶針對(duì)商場(chǎng)地點(diǎn)屬性選擇了一組屬性,即街道、城市、省和國(guó)家。但沒有說明這些屬性的層次順序關(guān)系。地點(diǎn)的概念層次樹可以通過以下步驟自動(dòng)產(chǎn)生。
①?根據(jù)每個(gè)屬性不同值的數(shù)目從小到大進(jìn)行排序,從而獲得以下順序,其中,括號(hào)內(nèi)容為相應(yīng)屬性不同值的數(shù)目。
國(guó)家(15)、省(65)、城市(3567)和街道(674339)。
②根據(jù)所排順序自頂而下構(gòu)造層次樹,即第一個(gè)屬性在最高層,最后一個(gè)屬性在最低層。所獲得的概念層次樹如圖 2 所示。

圖 2 自動(dòng)生成的地點(diǎn)屬性概念層次樹
③?用戶對(duì)自動(dòng)生成的概念層次樹進(jìn)行檢查,必要時(shí)進(jìn)行修改以使其能夠反映所期望的屬性間相互關(guān)系。本例中沒有必要進(jìn)行修改。
需要注意的是,上述啟發(fā)知識(shí)并非始終正確。例如,在一個(gè)帶有時(shí)間描述的數(shù)據(jù)庫(kù)中,時(shí)間屬性涉及 20 個(gè)不同年、12 個(gè)不同月和 1 個(gè)星期的值,則根據(jù)上述自動(dòng)產(chǎn)生概念層次樹的啟發(fā)知識(shí),可以獲得,年<月<星期。星期在概念層次樹的最頂層,這顯然是不符合實(shí)際的。