【问题标题】:how to represent decision tree with yes /no?如何用是/否表示决策树?
【发布时间】:2013-01-12 08:08:38
【问题描述】:

我想将此图中的数据保存为 xml 文件或数据库文件。

【问题讨论】:

    标签: xml database decision-tree


    【解决方案1】:

    我会将树表示为有向图,其中决策是节点,答案是导致其他决策的边。作为 xml,这可能是决策元素的线性列表,其 id 属性为 1..n 和连接到其他决策的是/否 id:

    <?xml version="1.0"?>
    <decision_tree>
    <decisions>
        <decision id="1" y="2" n="3">
            Power comes on?
        </decision>
        <decision id="2" y="4" n="5">
            Live screen?
        </decision>
        <decision id="3" y="6" n="7">
            Good AC power source?
        </decision>
        <!-- ... -->
    </decisions>
    <actions>
        <action id="5">
            Procede to Video Failure chart
        </action>
        <action id="7">
            Use live outlet.
        </action>
        <!-- ... -->
    </actions>
    </decision_tree>
    

    【讨论】:

    • 漂亮且轻量级的 xml。虽然我错过了最终状态!
    • 好点@MQoder。我将代表最终状态,例如决策节点,但没有是/否边缘。我在答案中添加了一个操作节点。
    【解决方案2】:

    如果要将其保存为 XML,则可以使用类似于以下的结构:

    <question> Power comes on
      <question if="yes">Live screen?
        <answer if="no">Proceed to video failure chart</answer>
        <question if="yes">New Build?
          <answer if="yes">Check power requirement vs rating</answer>
          <answer if="no"> .....
    ...
    ...
    </question>
    

    如果您想将其保存在数据库中,最佳格式取决于您的需求以及您使用的数据库类型(SQL、noSQL 等)。许多数据库允许您将 XML 存储为文本对象。

    【讨论】:

    • 这适用于分层决策树,其中决策或操作只能通过树中的单个路径到达。它不支持导致相同结论的两条独立路径或通过共享决策连接路径。
    【解决方案3】:

    Wizard4j 使用 XML 格式来描述其工作流程。我建议先看看那里,看看有什么有用的

    【讨论】:

      【解决方案4】:

      如果您正在寻找一种“标准”(广泛使用的)格式来存储决策树,您可以使用PMML。例如,Knime 使用此格式导出决策树。在冒险中,您还可以告知是或否的可能性。

      您可以在 lightpmmlpredictor project 上找到 PMML 示例。

      使用标准格式,您可以使用 knime 挖掘数据:

      【讨论】:

        猜你喜欢
        • 2018-12-01
        • 2019-12-26
        • 2017-04-27
        • 2018-12-23
        • 2015-10-22
        • 2012-10-01
        • 2023-03-22
        • 2017-07-26
        • 2014-03-14
        相关资源
        最近更新 更多