? ? ?“什么是判定樹?”判定樹是一個(gè)類似于流程圖的樹結(jié)構(gòu);其中,每個(gè)內(nèi)部結(jié)點(diǎn)表示在一個(gè)屬性上的測(cè)試,每個(gè)分枝代表一個(gè)測(cè)試輸出,而每個(gè)樹葉結(jié)點(diǎn)代表類或類分布。樹的最頂層結(jié)點(diǎn)是根結(jié)點(diǎn)。一棵典型的判定樹如圖 7.2 所示。它表示概念 buys_computer,即,它預(yù)測(cè) AllElectronics的顧客是否可能購(gòu)買計(jì)算機(jī)。內(nèi)部結(jié)點(diǎn)用矩形表示,而樹葉用橢圓表示。
? ? ?為了對(duì)未知的樣本分類,樣本的屬性值在判定樹上測(cè)試。路徑由根到存放該樣本預(yù)測(cè)的葉結(jié)點(diǎn)。判定樹容易轉(zhuǎn)換成分類規(guī)則。
? ? ?在 7.3.1 小節(jié), 我們介紹學(xué)習(xí)判定樹的基本算法。在判定樹構(gòu)造時(shí),許多分枝可能反映的是訓(xùn)練數(shù)據(jù)中的噪音或局外者。樹剪枝試圖檢測(cè)和剪去這種分枝,以提高在未知數(shù)據(jù)上分類的準(zhǔn)確性。樹剪枝在 7.3.2 小節(jié)介紹。由判定樹提取分類規(guī)則在 7.3.3 小節(jié)討論?;九卸渌惴ǖ募訌?qiáng)在7.3.4 小節(jié)給出。大型數(shù)據(jù)庫(kù)判定樹歸納的可規(guī)模性問題在 7.3.5 小節(jié)討論。7.3.6 小節(jié)介紹判定樹歸納與諸如數(shù)據(jù)方等數(shù)據(jù)倉(cāng)庫(kù)機(jī)制的集成,允許多個(gè)粒度層的判定樹挖掘。判定樹已在由醫(yī)療到游戲理論和商務(wù)等應(yīng)用領(lǐng)域廣泛使用。判定樹是一些商業(yè)規(guī)則歸納系統(tǒng)的基礎(chǔ)。

算法:Generate_decision_tree。由給定的訓(xùn)練數(shù)據(jù)產(chǎn)生一棵判定樹。
輸入:訓(xùn)練樣本 samples,由離散值屬性表示;候選屬性的集合 attribute_list。
輸出:一棵判定樹。
方法:由訓(xùn)練樣本歸納判定樹的基本算法
(1) 創(chuàng)建結(jié)點(diǎn) N;
(2) if samples 都在同一個(gè)類 C then
(3) return N 作為葉結(jié)點(diǎn),以類 C 標(biāo)記;
(4) if attribut_list 為空 then
(5) return N 作為葉結(jié)點(diǎn),標(biāo)記為 samples 中最普通的類; //majority voting
(6) 選擇 attribute_list 中具有最高信息增益的屬性 test_attribute;
(7) 標(biāo)記結(jié)點(diǎn) N 為 test_attribute;
(8) for each test_attribute 中的未知值 a i //partition the samples
(9) 由結(jié)點(diǎn) N 長(zhǎng)出一個(gè)條件為 test_attribute = a i的分枝;
(10) 設(shè) si 是 samples 中 test_attribute = a i的樣本的集合;//a partition
(11) if si 為空 then
(12) 加上一個(gè)樹葉,標(biāo)記為 samples 中最普通的類;
(13) else 加 上 一 個(gè) 由 Generate_decision_tree(si,attribute_list–test_attribute)返回的結(jié)點(diǎn);
7.3.1 判定樹歸納
? ? ?判定樹歸納的基本算法是貪心算法,它以自頂向下遞歸的劃分-控制方式構(gòu)造判定樹。由訓(xùn)練樣本歸納判定樹的基本算法是一種著名的判定樹算法 ID3 版本。算法的擴(kuò)展將在 7.3.2 到 7.3.6 小節(jié)討論。算法的基本策略如下:
i) 樹以代表訓(xùn)練樣本的單個(gè)結(jié)點(diǎn)開始(步驟 1)。
ii) 如果樣本都在同一個(gè)類,則該結(jié)點(diǎn)成為樹葉,并用該類標(biāo)號(hào)(步驟 2 和 3)。
iii) 否則,算法使用稱為信息增益的基于熵的度量作為啟發(fā)信息,選擇能夠最好地將樣本分類的屬性(步驟 6)。該屬性成為該結(jié)點(diǎn)的“測(cè)試”或“判定”屬性(步驟 7)。在算法的該版本中,所有的屬性都是分類的,即離散值。連續(xù)屬性必須離散化。
iv) 對(duì)測(cè)試屬性的每個(gè)已知的值,創(chuàng)建一個(gè)分枝,并據(jù)此劃分樣本(步驟 8-10)。
v) 算法使用同樣的過程,遞歸地形成每個(gè)劃分上的樣本判定樹。一旦一個(gè)屬性出現(xiàn)在一個(gè)結(jié)點(diǎn)上,就不必該結(jié)點(diǎn)的任何后代上考慮它(步驟 13)。
vi) 遞歸劃分步驟僅當(dāng)下列條件之一成立停止:
? ? ?(a) 給定結(jié)點(diǎn)的所有樣本屬于同一類(步驟 2 和 3)。
? ? ?(b) 沒有剩余屬性可以用來進(jìn)一步劃分樣本(步驟 4)。在此情況下,使用多數(shù)表決(步驟 5)。這涉及將給定的結(jié)點(diǎn)轉(zhuǎn)換成樹葉,并用樣本中的多數(shù)所在的類標(biāo)它。替換地,可以存放結(jié)點(diǎn)樣本的類分布。
? ? ?(c) 分枝 test_attribute = a i沒有樣本(步驟 11)。在這種情況下,以 samples 中的多數(shù)類創(chuàng)建一個(gè)樹葉(步驟 12)。
屬性選擇度量
? ? ?在樹的每個(gè)結(jié)點(diǎn)上使用信息增益度量選擇測(cè)試屬性。這種度量稱作屬性選擇度量或分裂的優(yōu)劣度量。選擇具有最高信息增益(或最大熵壓縮)的屬性作為當(dāng)前結(jié)點(diǎn)的測(cè)試屬性。該屬性使得對(duì)結(jié)果劃分中的樣本分類所需的信息量最小,并反映劃分的最小隨機(jī)性或 “不純性”。這種信息理論方法使得對(duì)一個(gè)對(duì)象分類所需的期望測(cè)試數(shù)目最小,并確保找到一棵簡(jiǎn)單的(但不必是最簡(jiǎn)單的)樹。
? ? ? 設(shè) S 是 s 個(gè)數(shù)據(jù)樣本的集合。假定類標(biāo)號(hào)屬性具有 m 個(gè)不同值,定義 m 個(gè)不同類 Ci (i = 1,...,m)。設(shè) si是類 Ci中的樣本數(shù)。對(duì)一個(gè)給定的樣本分類所需的期望信息由下式給出:

? ? ?其中,pi是任意樣本屬于 Ci的概率,并用 si /s 估計(jì)。注意,對(duì)數(shù)函數(shù)以 2 為底,因?yàn)樾畔⒂枚M(jìn)位編碼。設(shè)屬性 A 具有 v 個(gè)不同值{a1 ,..., av}??梢杂脤傩?A 將 S 劃分為 v 個(gè)子集{S1 ,..., Sv};其中,Sj包含 S 中這樣一些樣本,它們?cè)?A 上具有值 aj。如果 A 選作測(cè)試屬性(即,最好的劃分屬性),則這些子集對(duì)應(yīng)于由包含集合 S 的結(jié)點(diǎn)生長(zhǎng)出來的分枝。設(shè) sij是子集 Sj中類 Ci的樣本數(shù)。根據(jù) A劃分子集的熵或期望信息由下式給出:

? ? ?換言之,Gain(A)是由于知道屬性 A 的值而導(dǎo)致的熵的期望壓縮。
? ? ?算法計(jì)算每個(gè)屬性的信息增益。具有最高信息增益的屬性選作給定集合 S 的測(cè)試屬性。創(chuàng)建一個(gè)結(jié)點(diǎn),并以該屬性標(biāo)記,對(duì)屬性的每個(gè)值創(chuàng)建分枝,并據(jù)此劃分樣本。
? ? ?例 7.2 判定樹歸納。
? ? ?表 7.1 給出了取自 AllElectronics 顧客數(shù)據(jù)庫(kù)數(shù)據(jù)元組訓(xùn)練集。(該數(shù)據(jù)取自[Qui86])。類標(biāo)號(hào)屬性 buys_computer 有兩個(gè)不同值(即, {yes, no}),因此有兩個(gè)不同的類(m = 2)。設(shè)類 C1對(duì)應(yīng)于 yes,而類 C2對(duì)應(yīng)于 no。類 yes 有 9 個(gè)樣本,類 no 有 5 個(gè)樣本。為計(jì)算每個(gè)屬性的信息增益,我們首先使用(7.1)式,計(jì)算對(duì)給定樣本分類所需的期望信息:

? ? ?下一步,我們需要計(jì)算每個(gè)屬性的熵。讓我們從屬性 age 開始。我們需要觀察 age 的每個(gè)樣本值的 yes 和 no 分布。我們對(duì)每個(gè)分布計(jì)算期望信息。

? ? ?總而言之,判定樹歸納算法已在廣泛的應(yīng)用領(lǐng)域用于分類。這種系統(tǒng)不使用領(lǐng)域知識(shí)。判定樹歸納的學(xué)習(xí)和分類步驟通常很快。
7.3.2 樹剪枝
? ? ?當(dāng)判定樹創(chuàng)建時(shí),由于數(shù)據(jù)中的噪音和局外者,許多分枝反映的是訓(xùn)練數(shù)據(jù)中的異常。剪枝方法處理這種過分適應(yīng)數(shù)據(jù)問題。通常,這種方法使用統(tǒng)計(jì)度量,剪去最不可靠的分枝,這將導(dǎo)致較快的分類,提高樹獨(dú)立于測(cè)試數(shù)據(jù)正確分類的可靠性。
? ? ?“樹剪枝如何做?”有兩種常用的剪枝方法。
? ? ?在先剪枝方法中,通過提前停止樹的構(gòu)造(例如,通過決定在給定的結(jié)點(diǎn)上不再分裂或劃分訓(xùn)練樣本的子集)而對(duì)樹“剪枝”。一旦停止,結(jié)點(diǎn)成為樹葉。該樹葉可能持有子集樣本中最頻繁的類,或這些樣本的概率分布。在構(gòu)造樹時(shí),統(tǒng)計(jì)意義下的度量,如χ2、信息增益等,可以用于評(píng)估分裂的優(yōu)劣。如果在一個(gè)結(jié)點(diǎn)劃分樣本將導(dǎo)致低于預(yù)定義閾值的分裂,則給定子集的進(jìn)一步劃分將停止。然而,選取一個(gè)適當(dāng)?shù)拈撝凳抢щy的。較高的閾值可能導(dǎo)致過分簡(jiǎn)化的樹,而較低的閾值可能使得樹的化簡(jiǎn)太少。
? ? ?第二種方法是后剪枝方法,它由“完全生長(zhǎng)”的樹剪去分枝。通過刪除結(jié)點(diǎn)的分枝,剪掉樹結(jié)點(diǎn)。代價(jià)復(fù)雜性剪枝算法是后剪枝方法的一個(gè)實(shí)例。最下面的未被剪枝的結(jié)點(diǎn)成為樹葉,并用它先前分枝中最頻繁的類標(biāo)記。對(duì)于樹中每個(gè)非樹葉結(jié)點(diǎn),算法計(jì)算該結(jié)點(diǎn)上的子樹被剪枝可能出現(xiàn)的期望錯(cuò)誤率。然后,使用每個(gè)分枝的錯(cuò)誤率,結(jié)合沿每個(gè)分枝觀察的權(quán)重評(píng)估,計(jì)算不對(duì)該結(jié)點(diǎn)剪枝的期望錯(cuò)誤率。如果剪去該結(jié)點(diǎn)導(dǎo)致較高的期望錯(cuò)誤率,則保留該子樹;否則剪去該子樹。逐漸產(chǎn)生一組被剪枝的樹之后,使用一個(gè)獨(dú)立的測(cè)試集評(píng)估每棵樹的準(zhǔn)確率,就能得到具有最小期望錯(cuò)誤率的判定樹。
? ? ?我們可以根據(jù)編碼所需的二進(jìn)位位數(shù),而不是根據(jù)期望錯(cuò)誤率,對(duì)樹進(jìn)行剪枝?!白罴鸭糁洹笔沟镁幋a所需的二進(jìn)位最少。這種方法采用最小描述長(zhǎng)度(MDL)原則。由該原則,最簡(jiǎn)單的解是最期望的。不象代價(jià)復(fù)雜性剪枝,它不需要獨(dú)立的樣本集。
? ? ?也可以交叉使用先剪枝和后剪枝,形成組合式方法。后剪枝所需的計(jì)算比先剪枝多,但通常產(chǎn)生更可靠的樹。
7.3.3 由判定樹提取分類規(guī)則
? ? ?“我可以由我的判定樹得到分類規(guī)則嗎?如果能,怎么做?”可以提取判定樹表示的知識(shí),并以 IF-THEN 形式的分類規(guī)則表示。對(duì)從根到樹葉的每條路經(jīng)創(chuàng)建一個(gè)規(guī)則。沿著給定路經(jīng)上的每個(gè)屬性-值對(duì)形成規(guī)則前件(“IF”部分)的一個(gè)合取項(xiàng)。葉結(jié)點(diǎn)包含類預(yù)測(cè),形成規(guī)則后件(“THEN”部分)。IF-THEN 規(guī)則易于理解,特別是當(dāng)給定的樹很大時(shí)。
? ? ? 例 7.3 由判定樹產(chǎn)生分類規(guī)則。
? ? ?沿著由根結(jié)點(diǎn)到樹葉結(jié)點(diǎn)的路經(jīng),圖 7.2 的判定樹可以轉(zhuǎn)換成 IF-THEN 分類規(guī)則。由圖 7.2 提取的規(guī)則是:
IF age = ”<=30” AND student = “no” ? ? ? THEN buys_computer = “no”
IF age = ”<=30” AND student = “yes” ? ? ?THEN buys_computer = “yes”
IF age = ”31...40” ? ? ? THEN buys_computer = “yes”
IF age = ”>40” AND credit_rating =“excellent” ? ? ? THEN buys_computer = “no”
IF age = ”>40” AND credit_rating =“fair” ? ? ? THEN buys_computer = “yes”
? ? ?C4.5(ID3 算法的后繼版本)使用訓(xùn)練樣本估計(jì)每個(gè)規(guī)則的準(zhǔn)確率。由于這將導(dǎo)致對(duì)規(guī)則的準(zhǔn)確率的樂觀估計(jì),C4.5 使用一種悲觀估計(jì)來補(bǔ)償偏差。替換地,也可以使用一組獨(dú)立于訓(xùn)練樣本的測(cè)試樣本來評(píng)估準(zhǔn)確性。通過刪除規(guī)則前件中無助于改進(jìn)規(guī)則評(píng)估準(zhǔn)確性的條件,可以對(duì)規(guī)則“剪枝”。對(duì)于每一類,類中規(guī)則可以按它們的精確度定序。由于一個(gè)給定的樣本可能不滿足任何規(guī)則前件,通常將一個(gè)指定主要類的省缺規(guī)則添加到規(guī)則集中。
7.3.4 基本判定樹歸納的加強(qiáng)
? ? ?“對(duì)基本判定樹歸納的加強(qiáng)有哪些?”業(yè)已提出了許多對(duì) 7.3.1 小節(jié)判定樹歸納基本算法的加強(qiáng)。本小節(jié),我們將討論若干主要加強(qiáng),其中一些結(jié)合到 ID3 的后繼算法 C4.5 中。
? ? ?7.3.1 小節(jié)的判定樹歸納基本算法要求所有的屬性是分類的或離散化的。可以修改該算法,允許屬性具有整個(gè)離散區(qū)間或連續(xù)值。在這種屬性 A 上的測(cè)試導(dǎo)致兩個(gè)分枝,對(duì)應(yīng)于條件 A ≤ V 和 A >V,其中 V 是 A 的某個(gè)數(shù)值值。給定 A 的值 v,確定 V 時(shí)考慮 v-1 個(gè)可能的分割。通常,考慮每對(duì)相鄰值的中間值。如果這些值已預(yù)先排序,則只需要掃描一次這些值。信息增益度量有傾斜,它傾向于適合具有許多值的屬性。已經(jīng)提出了一些替代的方法,如增益率,它考慮每個(gè)屬性值的概率。還有一些其它選擇度量,包括 Gini 索引,χ2相依表統(tǒng)計(jì)和 G-統(tǒng)計(jì)。已經(jīng)提出了許多方法來處理遺漏的屬性值。例如,屬性 A 的遺漏值或未知值可以用 A 的最常見值替代。替換地,屬性 A 的外觀上的信息增益也可以根據(jù) A 的值未知的樣本百分比減少。這樣,具有缺少值的樣本“片段”可以在測(cè)試結(jié)點(diǎn)被劃分到多個(gè)分枝。其它方法可能尋找 A 的最可能值,或使用 A 和其它屬性的已知聯(lián)系。
? ? ?通過重復(fù)地將數(shù)據(jù)劃分成越來越小的部分,判定樹歸納可能面臨碎片、重復(fù)和復(fù)制問題。碎片是指一個(gè)給定分枝中的樣本數(shù)太小,沒有統(tǒng)計(jì)意義。解決該問題的一種方法是將分類屬性值分組。樹結(jié)點(diǎn)可以測(cè)試一個(gè)屬性值是否屬于給定的集合,如 Ai∈{a1, a2, ..., an}。另一種替代是創(chuàng)建二叉判定樹,其每個(gè)分枝擁有一個(gè)屬性上的布爾測(cè)試。二叉樹導(dǎo)致較少的數(shù)據(jù)碎片。一些實(shí)驗(yàn)研究發(fā)現(xiàn)二叉判定樹比傳統(tǒng)的判定樹更精確。當(dāng)一個(gè)屬性沿樹的一個(gè)給定分枝重復(fù)測(cè)試時(shí),就出現(xiàn)重復(fù)。復(fù)制是復(fù)制樹中已存在的子樹。屬性(特征)構(gòu)造是防止這三個(gè)問題的一種方法。通過由給定的屬性創(chuàng)建新的屬性,改進(jìn)給定屬性的受限表示。屬性構(gòu)造作為數(shù)據(jù)變換的一種形式,已在第 2 章討論過。
? ? ?業(yè)已提出了判定樹歸納的增量版本。當(dāng)給定新的訓(xùn)練數(shù)據(jù)時(shí),增量方法重新構(gòu)造由先前的訓(xùn)練數(shù)據(jù)學(xué)習(xí)獲得的判定樹,而不是“盲目地”通過學(xué)習(xí)構(gòu)造一棵新樹。
? ? ?還有一些對(duì)基本判定樹歸納的加強(qiáng),它們關(guān)注可規(guī)模性和與數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的集成。這些分別在7.3.5 和 7.3.6 小節(jié)討論。
7.3.5 判定樹歸納的可規(guī)模性
? ? ?“判定樹歸納的可規(guī)模性如何?”已有的判定樹算法,如 ID3 和 C4.5,對(duì)于相對(duì)小的數(shù)據(jù)集是很有效的。當(dāng)這些算法用于非常大的、現(xiàn)實(shí)世界數(shù)據(jù)庫(kù)的挖掘時(shí),有效性和可規(guī)模性就成了關(guān)注的問題。大部分判定樹算法都限制訓(xùn)練樣本駐留主存。在數(shù)據(jù)挖掘應(yīng)用中,包含數(shù)以百萬計(jì)樣本的非常大的訓(xùn)練集是很普通的。因此,這一限制就制約了這些算法的可規(guī)模性。由于訓(xùn)練樣本在主存和高速緩存換進(jìn)換出,判定樹的構(gòu)造可能變得效率低下。由大型數(shù)據(jù)庫(kù)構(gòu)造判定樹的早期策略包括對(duì)連續(xù)屬性離散化,在每個(gè)結(jié)點(diǎn)對(duì)數(shù)據(jù)選樣。然而,這些仍然假定訓(xùn)練集可以放在主存。一種替代的方法是:首先,將樣本劃分成子集,使得每個(gè)子集可以放在內(nèi)存;然后,由每個(gè)子集構(gòu)造一棵判定樹;最后,輸出的分類法將由每個(gè)子集得到的分類法組合在一起。盡管該方法可以用于大數(shù)據(jù)集的分類,其分類的準(zhǔn)確性不如一次使用所有的數(shù)據(jù)的方法高。
? ? ?最近,已經(jīng)提出了一些判定樹算法,它們強(qiáng)調(diào)可規(guī)模性。由非常大的訓(xùn)練集進(jìn)行判定樹歸納的算法包括 SLIQ 和 SPRINT;它們都能處理分類屬性和連續(xù)值屬性。這兩種算法都使用了預(yù)排序技術(shù),對(duì)非常大,而不能放入內(nèi)存的駐留磁盤的數(shù)據(jù)集進(jìn)行預(yù)排序。兩種算法都定義使用新的數(shù)據(jù)結(jié)構(gòu),以利于樹的構(gòu)造。SLIQ 使用若干駐留磁盤的屬性表和單個(gè)駐留主存的類表。對(duì)于表 7.2 的樣本數(shù)據(jù),SLIQ 產(chǎn)生的屬性表和類表如圖 7.5 所示。每一個(gè)屬性具有一個(gè)屬性表,在 RID(記錄標(biāo)識(shí))建立索引。每個(gè)元組由一個(gè)從每個(gè)屬性表的一個(gè)表目到類表的一個(gè)表目(存放給定元組的類標(biāo)號(hào))的鏈接表示。而類表表目鏈接到它在判定樹中對(duì)應(yīng)的葉子結(jié)點(diǎn)。類表駐留在主存,因?yàn)榕卸涞臉?gòu)造和剪枝時(shí),經(jīng)常訪問它。類表的大小隨訓(xùn)練集中元組數(shù)目成比例增長(zhǎng)。當(dāng)類表不能放在主存時(shí),SLIQ 的性能下降。

? ? ?SPRINT 使用不同的屬性表數(shù)據(jù)結(jié)構(gòu),存放類和 RID 信息,如圖 7.6 所示。當(dāng)結(jié)點(diǎn)分裂時(shí),屬性表被相應(yīng)劃分,并在結(jié)果子女中分布。當(dāng)表劃分時(shí),表中記錄的次序維持不變。因此,劃分表不需要重新排序。SPRINT 的設(shè)計(jì)易于并行,這就進(jìn)一步增強(qiáng)了可規(guī)模性。

7.3.6 集成數(shù)據(jù)倉(cāng)庫(kù)技術(shù)和判定樹歸納
? ? ?判定樹歸納可以與數(shù)據(jù)倉(cāng)庫(kù)技術(shù)集成,用于數(shù)據(jù)挖掘。本小節(jié),我們討論多維數(shù)據(jù)方方法和面向?qū)傩缘臍w納如何與判定樹歸納集成,以利于交互的多層挖掘。一般地,這里介紹的技術(shù)也可以用于其它形式的學(xué)習(xí)。
? ? ?數(shù)據(jù)方方法可以與判定樹歸納集成,提供交互的判定樹的多層挖掘。數(shù)據(jù)方和存放在概念分層中的知識(shí)可以用于在不同的抽象層歸納判定樹。此外,一旦導(dǎo)出判定樹,概念分層可以用來泛化或特化樹的結(jié)點(diǎn),可以在屬性上進(jìn)行上卷或下鉆,并對(duì)新的特定抽象層的數(shù)據(jù)重新分類。這種交互特點(diǎn)使得用戶可以將他們的注意力集中在他們感興趣的樹區(qū)域或數(shù)據(jù)。
? ? ?面向?qū)傩缘臍w納(AOI)使用概念分層,通過以高層概念替換低層概念泛化訓(xùn)練數(shù)據(jù)(第 5 章)。當(dāng)我們將 AOI 與判定樹歸納集成時(shí),泛化到很低的(特定的)概念層可能導(dǎo)致非常大而茂盛的樹。對(duì)非常高的概念層的泛化可能導(dǎo)致判定樹沒什么用;這里,由于過度泛化,一些有趣、重要的子概念丟失了。應(yīng)當(dāng)泛化到由領(lǐng)域?qū)<以O(shè)定,或由用戶指定的閾值控制的某個(gè)中間概念層。這樣,AOI的使用可能產(chǎn)生更易理解的、較小的分類樹,從而得到的樹比直接在低層、非泛化的數(shù)據(jù)集上操作的方法(如 SLIQ 或 SPRINT)產(chǎn)生的樹更易于解釋。
? ? ?對(duì)判定樹的典型批評(píng)是,由于遞歸地劃分,一些數(shù)據(jù)子集可能變得太小,使得進(jìn)一步劃分它們就失去統(tǒng)計(jì)意義。這種“無意義”的數(shù)據(jù)子集的最大尺寸可以統(tǒng)計(jì)地確定。為處理這一問題,可以引進(jìn)一個(gè)例外閾值。如果給定子集中的樣本數(shù)少于該閾值,該子集的進(jìn)一步劃分停止。替換地,創(chuàng)建一個(gè)葉結(jié)點(diǎn),存放該子集和該子集樣本的類分布。
? ? ?由于大型數(shù)據(jù)庫(kù)中的數(shù)據(jù)量大、發(fā)散,假定每個(gè)樹葉包含屬于一個(gè)公共類的樣本可能是不合理的。這一問題可以通過使用準(zhǔn)確率或分類閾值解決。如果屬于給定結(jié)點(diǎn)的任意類的樣本百分比超過該閾值,在給定結(jié)點(diǎn)上的進(jìn)一步劃分將終止。
? ? ?數(shù)據(jù)挖掘查詢語(yǔ)言可以容易地用于說明增強(qiáng)的判定樹歸納方法。假定數(shù)據(jù)挖掘任務(wù)是根據(jù)顧客的收入和職業(yè),預(yù)測(cè) 30 多歲的顧客的信用風(fēng)險(xiǎn),可以用如下數(shù)據(jù)挖掘查詢來說明:
mine classfication
analyze credit_risk
in relevance to income,occupation
from Customer_db
where (age>=30) and (age<40)
display as rules
? ? ?上面用 DMQL 表達(dá)的查詢?cè)?Customer_db 上執(zhí)行關(guān)系查詢,提取任務(wù)相關(guān)的數(shù)據(jù)。不滿足 where子句條件的元組將被忽略,并且僅收集 in relevance to 子句中說明的屬性和類標(biāo)號(hào)屬性(credit_risk)。然后,AOI 在這些數(shù)據(jù)上操作。由于該查詢并未說明所用的概念分層,因此使用省缺的概念分層??梢栽O(shè)計(jì)一個(gè)圖形用戶界面,使得用戶通過這種數(shù)據(jù)挖掘查詢語(yǔ)言說明數(shù)據(jù)挖掘任務(wù)更加容易。借助于這種辦法,用戶可以指導(dǎo)自動(dòng)的數(shù)據(jù)挖掘過程。