我正在使用带有推理引擎的专家系统(正向链接),我想解释为什么它比使用非常简单的概念的决策树更好。 (在某种特殊情况下)
我知道stackoverflow上有similar question,但这不是我正在寻找的答案。
这是我的问题:
对于客户关系管理,我使用了许多不同的业务规则(引发对话规则)来帮助客户对一个产品做出决策。 注意:经常添加规则(每天2次)。
客户在得到答案之前会回答一系列问题。与对话规则混合的业务规则使得得到的问卷看起来像是由最优决策树生成的问卷。即使隐藏的推理完全不同。
我想知道在这种情况下与决策树相比,在可伸缩性,健壮性,复杂性和效率方面支持(或可能反对)推理引擎的主要论点是什么。
我已经有了一些想法,但是因为我需要说服别人,所以我从来没有足够的论据。
提前感谢您的想法,如果您能告诉我有关该主题的优秀论文,我将非常高兴。
答案 0 :(得分:4)
正向链接推理引擎支持完整的一阶逻辑中的规范(转换为if-then规则),而决策树只能将一组向下移动到特定子集。如果您同时使用两者来确定用户想要的汽车,那么在一阶逻辑中您可以说(CHR语法; <=>
替换RHS的LHS):
user_likes_color(C), available_color(C) <=> car_color(C).
除了确定用户想要的汽车品牌/类型的所有规则外,推理引擎还将选择颜色以及其他属性。
使用决策树,您必须为颜色设置额外的树。只要颜色不与其他属性相互作用就没关系,但是一旦它们完成,你就搞砸了:你可能不得不为每种颜色复制整个树,除了那些与其他属性冲突的颜色,你需要它们也修改树。
(我承认颜色是一个非常愚蠢的例子,但我希望它可以解决这个问题。)
答案 1 :(得分:2)
这么说我在实践中没有使用过推理引擎或决策树。在我看来,如果你想要从给定的训练集中学习然后预测结果,你应该使用决策树。例如,如果您有一个数据集,其中包含有关天气情况(风,温度,雨,......)的烧烤信息。使用该数据集,您可以构建决策树。关于决策树的好处是你可以使用修剪来避免过度拟合,从而避免模拟噪声。
如果你有特定的规则,我认为推理引擎比决策树更好,你可以用它来推理。 Larsmans已经提供了一个很好的例子。
我希望有帮助