"""
*******************************************************
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