(dtree)
| 14 | |
| 15 | |
| 16 | def clone_tree(dtree): |
| 17 | children_left = dtree.tree_.children_left |
| 18 | children_right = dtree.tree_.children_right |
| 19 | feature = dtree.tree_.feature |
| 20 | threshold = dtree.tree_.threshold |
| 21 | values = dtree.tree_.value |
| 22 | |
| 23 | def grow(node_id): |
| 24 | l, r = children_left[node_id], children_right[node_id] |
| 25 | if l == r: |
| 26 | return Leaf(values[node_id].argmax()) |
| 27 | n = Node(None, None, (feature[node_id], threshold[node_id])) |
| 28 | n.left = grow(l) |
| 29 | n.right = grow(r) |
| 30 | return n |
| 31 | |
| 32 | node_id = 0 |
| 33 | root = Node(None, None, (feature[node_id], threshold[node_id])) |
| 34 | root.left = grow(children_left[node_id]) |
| 35 | root.right = grow(children_right[node_id]) |
| 36 | return root |
| 37 | |
| 38 | |
| 39 | def compare_trees(mine, gold): |
no test coverage detected