Hannah I want to understand what a decision tree is in machine learning. How does it make predictions using conditions and branching structures? Can someone also explain its advantages and common real-world use cases?