dt = DecisionTree.DecisionTree(
    training_datafile=training_datafile,
    csv_class_column_index=2,
    csv_columns_for_features=[3, 4, 5, 6, 7, 8],
    entropy_threshold=0.01,
    max_depth_desired=8,
    symbolic_to_numeric_cardinality_threshold=10,
)
dt.get_training_data()
dt.calculate_first_order_probabilities()
dt.calculate_class_priors()

#   UNCOMMENT THE FOLLOWING LINE if you would like to see the training
#   data that was read from the disk file:
#dt.show_training_data()

root_node = dt.construct_decision_tree_classifier()

#   UNCOMMENT THE FOLLOWING LINE if you would like to see the decision
#   tree displayed in your terminal window:
#print("\n\nThe Decision Tree:\n")
#root_node.display_decision_tree("     ")

#   YOu must construct an instance of the DT introspection class and
#   initialize the instance before you can get any answers through
#   introspection by the instance:
introspector = DecisionTree.DTIntrospection(dt)
introspector.initialize()

introspector.display_training_samples_at_all_nodes_direct_influence_only()