決策樹又稱為規(guī)則樹,是URule Pro規(guī)則引擎中提供的另外一種構(gòu)建規(guī)則的方式,它以一棵躺倒的樹形結(jié)構(gòu)來表現(xiàn)規(guī)則(之所以將其躺倒是為了節(jié)省空間,否則一棵稍微大點的樹將會占用很大的頁面空間),決策樹表現(xiàn)業(yè)務(wù)規(guī)則更為形象,實際上,無論是決策樹、決策表還是評分卡,都可以通過決策集來實現(xiàn),只是,對于某些業(yè)務(wù)規(guī)則來說,通過決策樹或決策表或評分卡實現(xiàn)起來更為形象、快捷。
下圖是一棵定義好的決策樹:
打開URule Pro控制臺,在測試項目的“決策樹”節(jié)點下右鍵,在彈出菜單中選擇“創(chuàng)建決策樹”項就可以創(chuàng)建一個決策樹文件,如下圖所示:
決策表最上方是工具欄,它同樣需要導(dǎo)入各種庫文件;中間是屬性設(shè)置區(qū),與決策表一樣只提供四個屬性,如果定義屬性,那么它們將會在運行時被附加由決策樹生成的所有規(guī)則上;最下面就是決策樹的定義區(qū),默認(rèn)它是一個根變量節(jié)點,是不可刪除的。在URule Pro當(dāng)中有三種類型的樹節(jié)點,分別是變量節(jié)點、條件節(jié)點以及動作節(jié)點。
變量節(jié)點就是用來選擇目標(biāo)變量的節(jié)點,要操作這里我們需要首先導(dǎo)入需要使用到的變量庫文件或參數(shù)庫文件,比如導(dǎo)入我們定義的會員變量庫,然后就可以選擇具體的會員變量屬性,如下圖:
定義好變量節(jié)點上要使用的變量后,就可以添加下級子節(jié)點,變量節(jié)點下只能添加條件節(jié)點,一個變量節(jié)點可添加多個條件節(jié)點,每個條件節(jié)點上配置的條件與當(dāng)前變量節(jié)點構(gòu)成一個完整的約束條件,條件的定義與向?qū)揭?guī)則中完全相同。如下圖:
條件節(jié)點下可以繼續(xù)添加子條件以進一步對上級條件進行約束或添加動作節(jié)點以結(jié)束當(dāng)前條件分支或者再添加若干變量節(jié)點以添加新類型的條件約束,如下圖:
一旦某個條件節(jié)點下添加了動作節(jié)點,那么就意味著這個條件分支的結(jié)束,一個動作節(jié)點中可添加多個動作,同樣一個條件節(jié)點下可以有多個動作節(jié)點,動作節(jié)點上的動作類型與動作定義方式與向?qū)揭?guī)則中完全相同。
對于一個合法的決策樹來說,任何一個分支都必須要由至少一個動作節(jié)點結(jié)束,否則系統(tǒng)將不允許保存。
實際上,決策樹是決策表的另一種表現(xiàn)形式,所以所有的決策表都可以用決策樹表現(xiàn),反之亦然。下圖當(dāng)中的決策樹就實現(xiàn)了在決策表一節(jié)示例中對應(yīng)的功能:
可以看到,與決策表相同的功能采用決策樹實現(xiàn)起來感覺體積上要大很多,所以在實際業(yè)務(wù)當(dāng)中多數(shù)決策樹都會轉(zhuǎn)換成決策表來定義。
將這個決策樹文件放到知識包中進行測試,同樣可以得到正確的結(jié)果。
更多建議: