NV_map = {}
alphabets = list(string.ascii_uppercase)
NA_map = {}
for i in range(20):  # 0-19
    A = "X" + alphabets[i + 1]
    NV_map[i] = [
        0, 1
    ]  # because only 0 and 1 are possible values for every attaribute
    NA_map[i] = A

print(NV_map)
print(NA_map)

#%%TREE
tree = DecisionTree()
tree.NA_map = NA_map
print("Creating Tree....")
tree.create_tree(X_train, Y_train, NV_map)
print("Decision Tree created.")
flag = input("Press 1/0 and Enter to print/not-print the tree.")

if (flag != ""):
    if int(flag) == 1:
        tree.print_tree()
        msg = "NODE_ID_FORMAT: {level}_{branch_number} Name(if available)"
        print("=" * len(msg))
        print(msg)
        print("=" * len(msg))
Y_p = tree.predict(X_train)
acc, _, _ = dm.get_accuracy(Y_train, Y_p)
print("Training accuracy:", acc, "%")