Decision trees are a type of machine learning algorithm used for classification and regression tasks. They are graphical representations of possible solutions to a decision based on certain conditions. Each internal node represents a test on an attribute, each branch represents the outcome of the test, and each leaf node represents a class label.