Limitations

Windows bugs

The function graphvizToPng which converts the dot file into an image using the subprocess module works only in a Linux environment but not in Windows

def graphvizToPng(self, out_file):
    """
    Graphical rendering of the decision tree rules from the DOT file

    :param out_file: Name of the output file
    :type out_file: String
    """
    outfile_path = os.path.join("results/", out_file)
    assert os.path.isfile(
        outfile_path), f"file {out_file!r} does not exist!"
    command = f"dot -Tpng {outfile_path} -o {outfile_path[:-4]}.png"
    try:
        subprocess.check_call(command, shell=True)
    except:
        print(f'Please run the following command in a Linux environment: \n {command}')
    else:
        print('Converting the dot file to png completed successfully!')

In order to overcome this problem, there are several solutions

Imbalanced classes

During our tests with the Aberdeen data, we encountered the problem of imbalanced data. In order to solve this problem, there are several solutions. One solution is the so called SMOTE which stands for Synthetic Minority Over-Sampling Technique. For further information on how to implement this method in Python, please check the following link

Imputation strategies

In order to deal with missing values, a more sophisticated imputation strategy can be used. For further information on how to implement this method in Python, please check the following link