""" ******************************************************* Owner: Ashutosh Jha For: APPCAIR BITS Pilani Goa Campus, Reflexis Systems Function Name: PreOrderTraversal Takes root node as input and makes a consolidated data frame which includes name, input condition, predicted label and origin row. This function uses pre order traversal to access all nodes. ******************************************************* """ import pandas as pd NodeSet_dict = {'Node Name':[],'Node input condition':[],'Node Predicted Label':[],'Node origin row no':[],'Node Left':[], 'Node Right':[],'Node Feature Used':[],'Node Belongs':[]} def PreOrderTraversal(root): if root: # First print the data of node NodeSet_dict['Node Name'].append(root.name) NodeSet_dict['Node input condition'].append(root.inp_cond) NodeSet_dict['Node Predicted Label'].append(root.pred_label) NodeSet_dict['Node origin row no'].append(root.row_no) if(root.left != None): NodeSet_dict['Node Left'].append(root.left.name) else: NodeSet_dict['Node Left'].append("#") if(root.right != None): NodeSet_dict['Node Right'].append(root.right.name) else: NodeSet_dict['Node Right'].append("#") NodeSet_dict['Node Feature Used'].append(root.f_used) NodeSet_dict['Node Belongs'].append(False) # Then recur on left child PreOrderTraversal(root.left) # Finally recur on right child PreOrderTraversal(root.right) NodeSet = pd.DataFrame(data=NodeSet_dict) return NodeSet