In this assignment, you will implement the ID3 algorithm for learning decision trees. You may assume that the class label and all attributes are binary (only 2 values).
Please follow the instructions in the notebook:
ID3 Notebook
The following notebook uses ID3 from sklearn library. You can use it to compare your output:
SklearnID3
You may look at open-source reference implementations, but pleasedo not copy code from open-source projects.
The ID3 algorithm is similar to what we discussed in class: Start with an empty tree and build it recursively. Use information gain to select the attribute to split on. (Do not divide by split information.)
The full algorithm is described in this classic paper (with over 25,000 citations):