Machine Learning Classification: How to Train a Decision Tree Classifier in Python

I’m diving into machine learning and I want to start with a basic classification task using a Decision Tree classifier in Python. How can I train a Decision Tree classifier on a dataset and use it to make predictions?
I have a dataset with features and corresponding labels. Let’s assume it’s a simple dataset with numeric features and binary labels (0 or 1). Here’s what I have so far:

# Sample dataset (features and labels)
features = [[1.2, 2.3], [2.4, 1.8], [3.5, 2.8], [2.1, 3.2]]
labels = [0, 1, 0, 1]

Could you provide a code example on how to preprocess this data, train a Decision Tree classifier, and use it for prediction? Additionally, any insights into hyperparameter tuning or evaluating the model’s performance would be appreciated. Thank you!

Sci-kit learn documentation is pretty good: sklearn.tree.DecisionTreeClassifier — scikit-learn 1.3.0 documentation

You do the usual splitting of train/test sets, fit, etc. that you do with other algorithms. I think to learn about hyperparameter tuning and performance you just have to read up on decision trees yourself (people write whole chapters in books about this stuff) and ask more specific questions given a bit more explicit scenarios. Decision tree study also goes hand in hand with random forests since they seek to mitigate some of the potential over-fitting issues in decision trees. Feel free to ask when you do come up with these questions, it’s too broad to go into in a single post.

Examples of how to use:
Overview: Decision tree - Wikipedia
Overview: 1.10. Decision Trees — scikit-learn 1.3.0 documentation
Overview (video, very good)
Kaggle decision tree tutorial (I didn’t read this through, I’m always skeptical of kaggle so read with a grain of salt): Decision-Tree Classifier Tutorial | Kaggle