4

如何将决策表转换或可视化为决策树图,是否有解决它的算法,或可视化它的软件?

例如,我想在下面可视化我的决策表:http: //i.stack.imgur.com/Qe2Pw.jpg

4

3 回答 3

3

不得不说这是一个有趣的问题。

我不知道确切的答案,但我会提出这样的方法:

  • 使用卡诺图将您的决策表转换为最小化布尔函数
  • 把你的功能变成一棵树

让我们简单化一个例子,并假设使用卡诺得到你的功能(a and b) or c or d。你可以把它变成一棵树:

在此处输入图像描述

来源:我自己

于 2015-07-31T09:02:24.250 回答
1

从决策树生成决策表当然更容易,而不是相反。

但在我看来,您可以将决策表转换为数据集。让“疾病”成为类属性,并将证据视为简单的二进制实例属性。从中,您可以使用可用的决策树归纳算法之一轻松生成决策树,例如 C4.5。请记住禁用修剪并降低最小对象数参数。

在此过程中,您会丢失一些信息,但准确性将保持不变。看看描述疾病 D04 的两行 - 第二行实际上比第一行更笼统。从该数据生成的决策树将仅从 E11、12 和 13 属性中识别所提到的疾病,因为它足以正确标记实例。

于 2015-07-31T09:27:36.570 回答
1

我花了几个小时寻找一个好的算法。但我对我的结果很满意。我的代码现在太脏了,无法粘贴到这里(我可以根据您的要求私下分享),但总体思路如下。

假设您有一个包含一些决策标准和结果的数据集。

  1. 定义树结构(例如 R 中的 data.tree)并创建“开始”根节点。
  2. 计算数据集的结果熵。如果熵为零,你就完成了。
  3. 使用每个标准,一个一个地作为树节点计算使用该标准创建的所有分支的熵。取所有分支中最小的一个熵。
  4. 使用具有最小(最小)熵的标准创建的分支是您的下一个树节点。将它们添加为子节点。
  5. 根据在步骤 4 中找到的决策点/树节点拆分数据并删除使用的标准。
  6. 对每个分支重复步骤 2-4,直到所有分支的熵 = 0。
  7. 享受您理想的决策树 :)
于 2016-10-26T22:02:21.147 回答