2011-06-10 73 views
5

我正在使用推理引擎(向前鏈)的專家系統,我想解釋爲什麼它比使用非常簡單概念的決策樹更好。 (在特定情況下)推理引擎vs決策樹

我知道在stackoverflow上有一個similar question但它不是我正在尋找的答案。

這裏是我的問題:

對於客戶關係管理,我使用很多不同的業務規則(即誘導對話的規則),以幫助客戶做出一個產品的決定。 注意:規則經常添加(每天2次)。

客戶在得到答案之前回答了一系列問題。與對話規則混合在一起的業務規則使得生成的調查問卷看起來像由最佳決策樹生成的調查問卷。儘管隱藏的理由是完全不同的。

我想知道在這種情況下,與可伸縮性,魯棒性,複雜性和效率相比,推理引擎有利於(或可能反對)哪些主要論點。

我已經有了一些想法,但因爲我需要說服某人這就像我從來沒有足夠的論據。

預先感謝您的想法,如果您能告訴我關於此主題的好論文,我會很高興。

回答

3

正向鏈接推理引擎支持完整的一階邏輯規範(翻譯成if-then規則),而決策樹只能將一個集合推廣到特定的子集。如果您同時使用,比如說,確定用戶想要什麼樣的車,然後在一階邏輯,你可以說(CHR語法; <=>是RHS替換LHS):除了

user_likes_color(C), available_color(C) <=> car_color(C). 

到所有的規則這決定了用戶想要的汽車的品牌/類型,並且推理引擎將選擇顏色以及其他屬性。

對於決策樹,您必須爲該顏色設置額外的樹。沒關係,只要顏色不與其他屬性相互作用,但是一旦顏色與其他屬性相互作用,就會發生這種情況:您可能必須爲每種顏色複製整個樹,除了那些與其他屬性衝突的顏色,您需要的顏色也修改樹。

(我承認的顏色是非常愚蠢的例子,但我希望它橫跨有想法。)

+0

謝謝,那是我的一個想法,但我喜歡你的榜樣。我的例子不是很好。 (我正在檢查大部分和正在互動的居住國家)。當屬性相關時,有一個「因式分解」的節點數量。 – 2011-06-10 17:09:29

2

這麼說我沒有使用過的推理引擎或決策樹在實踐中。在我看來,如果你想從一個給定的訓練集中學習,然後預測結果,你應該使用決策樹。舉個例子,如果你有一組數據和信息,說明你是否因爲天氣條件(風,溫,雨,...)出去烤肉。使用該數據集,您可以構建決策樹。關於決策樹的好處是,您可以使用修剪來避免過度擬合,從而避免模擬噪音。

我認爲推理引擎比決策樹好,如果你有特定的規則,你可以使用推理。拉斯曼已經提供了一個很好的例子。

我希望能幫到

+0

謝謝,這是一個很好的觀點。 – 2011-06-13 08:00:15