序列化/反序列化DecisionTree

时间:2018-04-13 12:15:47

标签: accord.net

我使用Accord.MachineLearning v3.8.0中的决策树。

在DecisionTreeView中训练后查看树工作正常。但是,如果我使用

序列化树
Accord.IO.Serializer.Save(tree, fileName);

然后用

对其进行反序列化
DecisionTree tree = Accord.IO.Serializer.Load<DecisionTree>(fileName);

然后尝试在DecisionTreeView

中将其可视化
decisionTreeView.TreeSource = tree;

我会得到

  

对象引用未设置为对象的实例。

     

at Accord.MachineLearning.DecisionTrees.DecisionNode.toString(Codification&gt; codebook)     在Accord.MachineLearning.DecisionTrees.DecisionNode.ToString()     在Accord.Controls.DecisionTreeView.convert(DecisionNode节点)     在Accord.Controls.DecisionTreeView.convert(DecisionNode节点)     at Accord.Controls.DecisionTreeView.update()     at Accord.Controls.DecisionTreeView.set_TreeSource(DecisionTree value)

1 个答案:

答案 0 :(得分:2)

找到修复程序。出于某种原因,DecisionNode:在序列化/反序列化DecisionTree时失去Owner属性值。在解除分区之后,迭代DecisionTree的DecisionNode:并将每个DecisionNode的Owner设置为DecisionTree本身。