Create a C++ program ([url removed, login to view]) which creates an ID3 decision tree to classify a set of input training data and then reports the classification performance on a separate set of input testing data.
The program should take 3 command-line arguments (integer: the number of real-valued features in the data set, string: input training data filename, string: input testing data filename)
The program should read in the training data file (one training example per line, see below)
The program should read in the testing data file (one testing example per line, see below)
Each line will contain the specified number of real feature values and a single interger value (the class label) at the end
The program should build an ID3 decision tree by sorting the training data by each feature/attribute and determining potential binary split points based on attribute value changes (average the two values to make the split) and maximum information gain
Ties (in maximum information gain) should be broken by attribute order (left to right) and then attribute value (smallest to largest) as found in the input file
Once the decision tree has been created, each of the testing examples should be classified using the resulting decision tree
The program should then output the number of testing examples classified correctly by the decision tree
-You should utilize the Iris data set to build your ID3 agent (download: [url removed, login to view]).
-A link to the original data set, with additional information can be found here: (link removed)
-DO NOT use the original data set from the UCI link as input; I have re-formatted it to my specifications.
-Include a Makefile with your code which allows it to compile by simply typing 'make'.
-Your code should only print the number of correctly classified testing examples followed by a newline character.
A zipped file (.zip) containing:
[url removed, login to view]