Decison Trees are one of the most widely used algorithms in the field and yet, it's foundations are simple and elegant that anyone who are a bit familiar with the machine learning can understand.
So with this notebook, I've tried to explain what decision trees are, how to form a decision tree from scratch (From measuring impurity to choosing the best split and where to stop, I've tried to explain everything with examples!) without using sklearn.
I hope it helps you understanding the concepts. And also, I've prepared all the material by myself and I'm also relatively new to the machine learning field. So if you think there are any mistakes our just not sure about something, feel free to contact with me! I'm looking forward to hear from you.
And finally, I've downloaded the dataset from Kaggle.