8

我正在使用带有推理引​​擎(前向链接)的专家系统,我想解释为什么它比使用非常简单的概念的决策树更好。(在一种特殊情况下)

我知道在 stackoverflow 上有一个类似的问题,但这不是我正在寻找的答案。

这是我的问题:

对于客户关系管理,我使用许多不同的业务规则(诱导对话规则)来帮助客户对一种产品做出决定。注意:经常添加规则(每天 2 条)。

客户在得到答案之前回答了一系列问题。业务规则与对话规则相结合,使生成的问卷看起来像是由最优决策树生成的问卷。即使隐藏的推理完全不同。

在这种情况下,与决策树相比,我想知道在可扩展性、鲁棒性、复杂性和效率方面支持(或反对)推理引擎的主要论点是什么。

我已经有了一些想法,但既然我需要说服某人,就好像我从来没有足够的论据。

提前感谢您的想法,如果您能建议我阅读有关此主题的好论文,我将很高兴。

4

2 回答 2

4

前向链接推理引擎支持完整的一阶逻辑规范(转换为 if-then 规则),而决策树只能将一组向下行进到特定子集。如果您同时使用两者来确定用户想要什么汽车,那么在一阶逻辑中您可以说(CHR语法;<=>用 RHS 替换 LHS):

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

除了确定用户想要的汽车品牌/类型的所有规则之外,推理引擎还将选择颜色以及其他属性。

使用决策树,您必须为颜色设置额外的树。只要颜色不与其他属性交互,那没关系,但是一旦它们交互,你就搞砸了:你可能必须为每种颜色复制整个树,除了那些与其他属性冲突的颜色,你需要还要修改树。

(我承认颜色是一个非常愚蠢的例子,但我希望它能传达这个想法。)

于 2011-06-10T16:54:04.947 回答
2

这么说我在实践中没有使用推理引擎或决策树。在我看来,如果你想从给定的训练集中学习然后预测结果,你应该使用决策树。例如,如果您有一个数据集,其中包含说明您是否在给定天气条件(风、温度、雨......)的情况下外出烧烤的信息。使用该数据集,您可以构建决策树。决策树的好处是您可以使用剪枝来避免过度拟合,从而避免对噪声进行建模。

如果你有特定的规则,我认为推理引擎比决策树更好,你可以使用这些规则进行推理。Larsmans 已经提供了一个很好的例子。

我希望这会有所帮助

于 2011-06-10T17:44:48.800 回答