如何实现基于决策树的C#代码/逻辑?
我有一个很大的决策树,里面有很多是/否问题。
我需要用 C# 实现一些代码,然后遍历这棵树并获得唯一的 id 作为返回。
if-> 1=true, A=true, C=true -> return 111;
if -> 1=true, A=true, C=false -> return 110;
如果没有if else,我如何实现这样的逻辑? 我的决策树要大得多,因为这个样本和 if/else 不是很好的解决方案。 我想用两种方法来做。第一种方法获取QuestionID,第二种方法将根据问题获取答案的唯一ID。请帮助我一些代码想法..
决策树:
i have big decision tree with many Yes/No questions.
i need implement some code with c# and go trough this tree and get unique id as return.
if-> 1=true, A=true, C=true -> return 111;
if -> 1=true, A=true, C=false -> return 110;
how can i implement such a logic without if else?
my decision tree is much, much bigger as this sample and if/else are not good solution.
i think to do it in 2 methods. first Get QuestionID, and second method will get Unique ID of answer based on questions. please help me with some code ideas..
decision tree:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果这棵树是固定的,您可以在决策表(有点像真值表)中设置所有替代方案并将其保存在字典中,然后使用该字典返回相应的结果。
ETC
if this tree is fixed you can set all alternatives in a decision table(somewhat like truth table) and save it in a dictionary then use this dictionary to return the corresponding outcome.
etc
您必须定义一个决策矩阵。您的代码将如下所示:
判别式 = Decision_matrix( 1, A, B, C, 2 )
开关(判别式)
{
案例结果_1:...
休息;
案例结果_2:...
休息;
默认:
扔 ...
休息;
}
You have to define a decision matrix. Your code will then look like:
discriminant = decision_matrix( 1, A, B, C, 2 )
switch (discriminant )
{
case outcome_1: ...
break;
case outcome_2: ...
break;
default:
throw ...
break;
}