推理引擎与决策树 [关闭]

Posted

技术标签:

【中文标题】推理引擎与决策树 [关闭]【英文标题】:Inference engines vs Decision trees [closed] 【发布时间】:2011-09-12 15:34:35 【问题描述】:

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

我知道 *** 上有一个 similar question,但这不是我要寻找的答案。

这是我的问题:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

谢谢,这是我的一个想法,但我喜欢你的例子。我的例子不是很好。 (我正在检查正在交互的多数和居住国)。当属性相关时,节点数量会“分解”。【参考方案2】:

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

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

希望对你有帮助

【讨论】:

谢谢,这是一个很好的观点。

以上是关于推理引擎与决策树 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤条件推理决策树是传统决策树的一个重要变体条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

一文看懂决策树

R构建决策树模型实战

R语言图形用户界面数据挖掘包Rattle:加载UCI糖尿病数据集并启动Rattle图形用户界面调用party包中的ctree函数构建条件推理树模型并使用rattle可视化条件推理决策树

R语言图形用户界面数据挖掘包Rattle:加载UCI糖尿病数据集并启动Rattle图形用户界面调用party包中的ctree函数构建条件推理树模型并使用rattle可视化条件推理决策树

决策树