2017-03-27 152 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))

您很可能需要建立一個遞歸函數來構建它。