いつもお世話になっております。
行いたいこと
プロパティとしてval0, val1, val2, val3を持ったオブジェクトを
下記の図左側のように条件分岐していき、Group:A, B, Cのいずれかを判定させるようなプログラムを書きたいと思っています。
決定木が固定であるならば地道にif-else文を書いていけばよいと思うのですが、
将来的に右側のように
・条件の閾値変更
・条件の入れ替わり? (一番最初がval0分岐からval3分岐に変更)
・階層が変わる
などが考えられます。
GUIや外部ファイルを読み込むようにして決定木を変えていこうと思っております。
二分木構造自体は下記のようなクラスを作成することで動的に作成することができるのはないかと考えています。
修正箇所やこうすればよいのではないか。等あればアドバイスよろしくお願いします。
C#
1 class Node 2 { 3 public Node(Node person, Node left, Node right, int level, int threshold, string label, decision = null) 4 { 5 Person = person; 6 Left = left; 7 Right = right; 8 Level = level; 9 Threshold = threshold; 10 Label = label; 11 Decision = decision; 12 } 13 14 public Node Person { get; set; } // 親ノード 15 public Node Left { get; set; } // 左側の子ノード 16 public Node Right { get; set; } // 右側の子ノード 17 public int Level { get; set; } // 階層 18 public int Threshold { get; set; } // 閾値 19 public string Label { get; set; } // val0, val1など? 20 public string Decision { get; set; } // 最終結果 GroupAなど 21 22 } 23
質問
条件が変わっていく条件分岐をどのように表現してよいのかわかりません。
手法をご存知の方、よろしくお願い致します。
環境
C#, .net f/w 4.6, VS2017 Pro
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。