this whole example needs refactoring...
why is ```informational_gain_attribute``` function in the example?
this should be in the implementation of ID3