What is the difference between decision trees and linear models in machine learning?

I am new to machine learning, and I am trying to understand the difference between decision trees and linear models. Can someone explain the key differences between the two? How do they differ in terms of their assumptions, complexity, interpretability, and accuracy? Can you provide an example of when to use a decision tree versus a linear model?

Here’s the code I am using to load and preprocess the iris dataset:

Any insights or code examples would be greatly appreciated!"