Table of Contents

    Decision Trees

    SUPERVISED LEARNING — ALGORITHM

    Decision Trees

    The most intuitive and visual algorithm in Machine Learning — that thinks like a human decision-maker.

    Introduction to Decision Trees

    A Decision Tree is a supervised Machine Learning algorithm used for both classification and regression tasks. It splits data into smaller branches based on decision rules — just like a flowchart. Each branch represents a possible answer, and each leaf represents a final decision.

    "A Decision Tree is how a computer mimics human decision-making — by asking the right questions."
    Why It Matters: Decision Trees are easy to interpret, fast to train, and form the base of powerful algorithms like Random Forest and XGBoost.

    Definition

    DEFINITION
    Decision Tree = A flowchart of decisions made on data features

    It learns from data by splitting it into smaller and smaller groups, based on the most informative features at each step.

    Structure of a Decision Tree

    • Root Node: The top-most node that contains the full dataset.
    • Decision Node: A node that splits into two or more branches.
    • Leaf Node: A final node that gives the prediction.
    • Branch: Represents the outcome of a decision rule.
    EXAMPLE
    "Is it sunny?"Yes → Play | No → "Is it raining?"Yes → Stay Home

    How Decision Trees Work

    1. Start with the entire dataset at the root node.
    2. Choose the best feature that splits the data effectively.
    3. Split data based on that feature (using a condition).
    4. Repeat recursively for each branch.
    5. Stop when all data is correctly classified or maximum depth is reached.
    Goal: Build a tree that gives accurate predictions with minimal complexity.

    Splitting Criteria

    To decide where to split, decision trees use mathematical formulas to measure data purity:

    Gini Index

    Measures the impurity of a node. The lower, the better.

    $$ Gini = 1 - \sum_{i=1}^{n} p_i^2 $$

    Entropy & Information Gain

    Used in algorithms like ID3 and C4.5.

    $$ Entropy = -\sum_{i=1}^{n} p_i \log_2(p_i) $$

    $$ IG = Entropy(parent) - \sum \frac{|child|}{|parent|} Entropy(child) $$

    Variance Reduction

    Used in regression decision trees.

    $$ Var(X) = \frac{1}{n}\sum(x_i - \bar{x})^2 $$

    Chi-Square

    Measures statistical significance between features.

    Types of Decision Trees

    Classification Tree

    • Predicts categorical values (Yes/No, Spam/Not).
    • Used in spam detection, disease diagnosis.

    Regression Tree

    • Predicts continuous values (e.g., price).
    • Used in real estate and finance models.

    Popular Decision Tree Algorithms

    Algorithm Splitting Criterion Use Case
    ID3Entropy / Information GainClassification
    C4.5Gain RatioClassification
    CARTGini Index / MSEClassification & Regression
    CHAIDChi-SquareCategorical Data

    Practical Example in Python

    Predicting whether a person will buy a product based on age and income:

    import pandas as pd
    from sklearn.tree import DecisionTreeClassifier, plot_tree
    from sklearn.model_selection import train_test_split
    import matplotlib.pyplot as plt
    
    # Sample dataset
    data = {
        "Age": [22, 25, 47, 52, 46, 56, 23, 45],
        "Income": [40000, 50000, 90000, 110000, 95000, 120000, 42000, 88000],
        "Buys": ["No", "No", "Yes", "Yes", "Yes", "Yes", "No", "Yes"]
    }
    
    df = pd.DataFrame(data)
    X = df[["Age", "Income"]]
    y = df["Buys"]
    
    # Split data
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
    
    # Train Model
    model = DecisionTreeClassifier(criterion="gini", max_depth=3)
    model.fit(X_train, y_train)
    
    # Predict
    print("Prediction:", model.predict([[30, 60000]]))
    
    # Visualize Tree
    plt.figure(figsize=(10, 6))
    plot_tree(model, feature_names=["Age", "Income"], class_names=["No", "Yes"], filled=True)
    plt.show()
    
    Insight: The decision tree clearly shows how data is split — making it easy to interpret.

    Pruning — Avoiding Overfitting

    A deep tree can overfit by memorizing training data. Pruning helps simplify it for better generalization.

    Pre-Pruning

    Stops the tree early using max depth or min samples.

    Post-Pruning

    Builds the full tree first, then removes weak branches.

    Goal: Reduce tree complexity while keeping accuracy high.

    Advantages vs Limitations

    Advantages

    • Easy to understand and visualize.
    • Handles both numeric and categorical data.
    • No need for feature scaling.
    • Captures non-linear relationships.

    Limitations

    • Prone to overfitting on small datasets.
    • Sensitive to data changes.
    • Can become biased with imbalanced data.
    • Large trees can be hard to maintain.

    Decision Tree vs Linear Regression

    Aspect Linear Regression Decision Tree
    TypeLinearNon-Linear
    OutputContinuousContinuous or Categorical
    InterpretabilityMathematicalVisual & Intuitive
    Scaling NeededYesNo
    Use CaseTrend predictionDecision-based problems

    Real-World Applications

    Healthcare

    • Diagnose diseases using patient symptoms.
    • Predict patient recovery time.

    Finance

    • Detect fraudulent transactions.
    • Predict loan defaults.

    E-Commerce

    • Predict customer purchase behavior.
    • Recommend products effectively.

    Business

    • Customer segmentation and retention.
    • Marketing campaign decision-making.

    Common Mistakes vs Best Practices

    Common Mistakes Best Practices
    Allowing tree to grow too deep Use pruning or max_depth parameter
    Ignoring class imbalance Use balanced class weights
    Skipping data cleaning Always preprocess data first
    Overfitting on training data Use cross-validation

    Prerequisites Before Learning

    What You Should Know First

    • Basic Python and Pandas.
    • Concepts of supervised learning.
    • Understanding of entropy and probability.
    • Familiarity with scikit-learn.
    • EDA and feature engineering basics.

    Pro Tips to Master Decision Trees

    Smart Strategy

    • Use visualization tools to understand splits.
    • Always tune max_depth and min_samples_split.
    • Combine multiple trees → Random Forest or XGBoost.
    • Always evaluate performance on test data.
    • Use domain knowledge to validate decisions.

    Key Formulas Cheat Sheet

    GINI INDEX
    1 − Σ pᵢ²
    ENTROPY
    −Σ pᵢ log₂(pᵢ)
    INFORMATION GAIN
    Entropy(parent) − Σ (|child|/|parent|) × Entropy(child)
    VARIANCE REDUCTION
    1/n × Σ (xᵢ − x̄)²

    Final Takeaway

    Decision Trees are like flowcharts for decision-making. They are simple, powerful, and easy to interpret — making them perfect for both beginners and experts. Master Decision Trees, and you'll unlock advanced models like Random Forest and Gradient Boosting 🌳.