id3 decision tree python implementation from scratch