2012-07-03 46 views
5

我想使用accord.net框架从一组数据生成决策树。使用生成的决策树预测新的输入

我在这个环节http://crsouza.blogspot.com/2012/01/decision-trees-in-c.html

我能够按照它来生成树阅读指导。但是,如何使用它来预测新的输入?

我的意思是创建树后,我想用它(作为if-else语句知道的新的输入输出)

中指出,我可以将其转换为一个表达式var expression = tree.ToExpression();但如何我可以使用它吗?

感谢您的帮助

回答

4

我建议您仔细阅读指南中的示例。在该过程的最后,他们产生expression treevar expression = tree.ToExpression();和编译

var func = expression.Compile();

的结果是,你可以简单地执行以获取给定的输入决定的委托。在这个例子中,你可以做类似

bool willPlayTennis = func(new double[] {1.0, 1.0, 1.0, 1.0}) == 1;

+4

没错。也可以使用决策树的[计算方法](http://accord.googlecode.com/svn/docs/html/M_Accord_MachineLearning_DecisionTrees_DecisionTree_Compute.htm)计算给定输入的决策。我同意Compute示例丢失;我应该添加它作为进一步参考。 – Cesar

+1

@Cesar,绝对需要这样的例子。我在贝叶斯方面做了同样的事情,如果我应该使用相同的密码本来准备新的输入,这并不明显。 –

+0

只是为了进一步参考,决策树的文档页面前一段更新了一个更好的示例。 – Cesar