2017-03-27 134 views
0

我正在构建一个模型,以允许业务用户在运行时构建决策树。建模决策树

具体实施将在调查中看到适用于给定问题的决定,以决定是否应显示该问题。

为了便于讨论的一个例子是:

  • Q1:请注明您的性别。第二季度:请说明您的年龄。
    (0-120)
  • Q3:你有没有怀孕过?
    (这个问题只有在答案Q1 = F AND Q2> 9的答案时才会显示)
  • 问题4:你有过乳房X光检查吗?
    (这个问题只应该显示,如果(答案Q1 = F 答案Q2> 40)答案Q3 =是

我到目前为止该模型会看到附连到每个问题的结构如下:

enter image description here

实施例的数据:
enter image description here

上面的代码中的数据应该允许某人运行数据并重新创建上述问题中显示的条件,然后允许他们显示问题,或者不根据以前问题中的问题。

我到目前为止感觉有点混乱,但我想知道如果他们是一个既定的模式,任何人都可以想到这将做到这一点。任何其他反馈也是有用的。

我希望我的问题有道理。

更新(2017年3月28日):
@Avitus:我不同意你的想法一致(请纠正我,如果我错了)。评估一次只会比较两个条件,但TargetEvalID允许您将问题与以前的组进行比较。 I.E.在我给出的例子中,我比较((Q1和Q2)或Q3)。要达到你所说的话,我只能做一些嵌套的问题。如果我想做A和B和C我会做(A和B)和C.

这是否有意义?

更新(2017年3月29日)
我做了一个模型更改为允许组相比其他群体。
I.E. (A和B)或(c和d)

enter image description here

+0

您是否考虑过使用决策树或随机森林软件包,使用R等工具?根据您的数据构建决策树会比较简单,我认为。 –

+0

@TimBiegeleisen这个项目是用Java实现的,人们希望在可能的情况下保留所有原生的东西。我必须提出一个相当有说服力的例子来增加复杂性,以将另一种语言引入已经相当全面的堆栈中。虽然可能是一个很好的回退选项。谢谢。 – Gineer

回答

0

你错过了最重要的事情是事情,除非你只允许企业用户选择最多2个标准的逻辑分组。

例如,你允许(A)或(B),(A)和(B)

但是你要允许(A)或(b)和(c)。

这意味着您需要一个额外的参数来放置第三组或第四组,以便用户可以:((A)或(B))和(C) 或者他们想要做什么:(A )或((B)和(C))

您很可能需要建立一个递归函数来构建它。