10.決策樹(shù)
簡介
決策樹(shù)又稱為(wèi)規則樹(shù),是URule Pro規則引擎中提供的另外一種構建規則的方式,它以一棵躺倒的樹(shù)形結構來(lái)表現規則(之所以将其躺倒是為(wèi)了節省空(kōng)間(jiān),否則一棵稍微大(dà)點的樹(shù)将會(huì)占用很(hěn)大(dà)的頁面空(kōng)間(jiān)),決策樹(shù)表現業務規則更為(wèi)形象,實際上(shàng),無論是決策樹(shù)、決策表還(hái)是評分卡,都可(kě)以通(tōng)過決策集來(lái)實現,隻是,對于某些(xiē)業務規則來(lái)說,通(tōng)過決策樹(shù)或決策表或評分卡實現起來(lái)更為(wèi)形象、快捷。
下圖是一棵定義好的決策樹(shù):
創建決策樹(shù)
打開(kāi)URule Pro控制(zhì)台,在測試項目的“決策樹(shù)”節點下右鍵,在彈出菜單中選擇“創建決策樹(shù)”項就可(kě)以創建一個(gè)決策樹(shù)文件,如下圖所示:
決策表最上(shàng)方是工具欄,它同樣需要導入各種庫文件;中間(jiān)是屬性設置區(qū),與決策表一樣隻提供四個(gè)屬性,如果定義屬性,那(nà)麽它們将會(huì)在運行(xíng)時(shí)被附加由決策樹(shù)生(shēng)成的所有(yǒu)規則上(shàng);最下面就是決策樹(shù)的定義區(qū),默認它是一個(gè)根變量節點,是不可(kě)删除的。在URule Pro當中有(yǒu)三種類型的樹(shù)節點,分别是變量節點、條件節點以及動作(zuò)節點。
變量節點就是用來(lái)選擇目标變量的節點,要操作(zuò)這裏我們需要首先導入需要使用到的變量庫文件或參數(shù)庫文件,比如導入我們定義的會(huì)員變量庫,然後就可(kě)以選擇具體(tǐ)的會(huì)員變量屬性,如下圖:
定義好變量節點上(shàng)要使用的變量後,就可(kě)以添加下級子節點,變量節點下隻能添加條件節點,一個(gè)變量節點可(kě)添加多(duō)個(gè)條件節點,每個(gè)條件節點上(shàng)配置的條件與當前變量節點構成一個(gè)完整的約束條件,條件的定義與向導式規則中完全相同。如下圖:
條件節點下可(kě)以繼續添加子條件以進一步對上(shàng)級條件進行(xíng)約束或添加動作(zuò)節點以結束當前條件分支或者再添加若幹變量節點以添加新類型的條件約束,如下圖:
一旦某個(gè)條件節點下添加了動作(zuò)節點,那(nà)麽就意味着這個(gè)條件分支的結束,一個(gè)動作(zuò)節點中可(kě)添加多(duō)個(gè)動作(zuò),同樣一個(gè)條件節點下可(kě)以有(yǒu)多(duō)個(gè)動作(zuò)節點,動作(zuò)節點上(shàng)的動作(zuò)類型與動作(zuò)定義方式與向導式規則中完全相同。
對于一個(gè)合法的決策樹(shù)來(lái)說,任何一個(gè)分支都必須要由至少(shǎo)一個(gè)動作(zuò)節點結束,否則系統将不允許保存。
在URule Pro當中,為(wèi)了方便大(dà)家(jiā)定義較為(wèi)複雜的決策樹(shù),我們提供了兩種類型的決策樹(shù)設計(jì)器(qì),一種就是上(shàng)面介紹的那(nà)種設計(jì)器(qì),我們稱之為(wèi)“橫向樹(shù)編輯器(qì)”;還(hái)有(yǒu)一種就是傳統的樹(shù)形結構決策樹(shù)設計(jì)器(qì),稱之為(wèi)“縱向樹(shù)設計(jì)器(qì)”,如下圖所示:
可(kě)以看到,相比“橫向樹(shù)設計(jì)器(qì)”,這種傳統類型樹(shù)設計(jì)器(qì)節點菜單內(nèi)容更多(duō),對樹(shù)的編輯能力更強,因為(wèi)它采用的是傳統的樹(shù)形結構展示,所以這種“縱向樹(shù)設計(jì)器(qì)”有(yǒu)非常強大(dà)的樹(shù)表現能力,可(kě)以快速展示成千上(shàng)萬個(gè)節點。 你(nǐ)在定義決策樹(shù)時(shí),如果節點數(shù)量過多(duō),采用“橫向樹(shù)設計(jì)器(qì)”會(huì)發現其加載速度很(hěn)慢,但(dàn)切換到“縱向樹(shù)設計(jì)器(qì)”則不存在這種問題。 同時(shí)大(dà)家(jiā)也能看到“縱向樹(shù)設計(jì)器(qì)”這種傳統的樹(shù)結構相比“橫向樹(shù)設計(jì)器(qì)”對樹(shù)的表現能力略差一些(xiē),具體(tǐ)使用中大(dà)家(jiā)可(kě)以根據情況靈活選擇。
通(tōng)過決策樹(shù)設計(jì)器(qì)工具欄裏的“切換設計(jì)器(qì)”按鈕可(kě)在兩種設計(jì)器(qì)間(jiān)自由切換,切換信息會(huì)保存在當前浏覽器(qì)的cookie中,所以下次在打開(kāi)決策樹(shù)文件時(shí)會(huì)采用最後一次使用的決策樹(shù)設計(jì)器(qì)來(lái)打開(kāi)目标文件。
示例
實際上(shàng),決策樹(shù)是決策表的另一種表現形式,所以所有(yǒu)的決策表都可(kě)以用決策樹(shù)表現,反之亦然。下圖當中的決策樹(shù)就實現了在決策表一節示例中對應的功能:
可(kě)以看到,與決策表相同的功能采用決策樹(shù)實現起來(lái)感覺體(tǐ)積上(shàng)要大(dà)很(hěn)多(duō),所以在實際業務當中多(duō)數(shù)決策樹(shù)都會(huì)轉換成決策表來(lái)定義。
将這個(gè)決策樹(shù)文件放到知識包中進行(xíng)測試,同樣可(kě)以得(de)到正确的結果。