Bird
Raised Fist0
ML Pythonml~20 mins

Gradient Boosting for regression in ML Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Gradient Boosting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How does Gradient Boosting improve regression predictions?

Imagine you want to predict house prices. Gradient Boosting builds many small models one after another. What is the main way it improves predictions?

AIt randomly selects features to reduce overfitting.
BEach model predicts independently and their results are averaged.
CIt uses a single large model trained once on all data.
DEach new model tries to fix the errors made by all previous models.
Attempts:
2 left
💡 Hint

Think about how mistakes from earlier models guide the next ones.

Predict Output
intermediate
2:00remaining
Output of Gradient Boosting regression training metrics

What will be the printed training loss after 3 iterations of this Gradient Boosting Regressor?

ML Python
from sklearn.datasets import make_regression
from sklearn.ensemble import GradientBoostingRegressor

X, y = make_regression(n_samples=100, n_features=1, noise=5, random_state=42)
model = GradientBoostingRegressor(n_estimators=3, learning_rate=1.0, max_depth=1, random_state=42)
model.fit(X, y)
print(round(model.train_score_[-1], 2))
A0.00
B0.25
C0.12
D0.50
Attempts:
2 left
💡 Hint

Look at how train_score_ stores deviance (loss) after each iteration.

Model Choice
advanced
2:00remaining
Choosing the best base learner for Gradient Boosting regression

You want to use Gradient Boosting to predict a continuous target with complex nonlinear relationships. Which base learner is best to use?

ALinear regression models as base learners
BDecision trees with shallow depth (e.g., max_depth=3)
CSingle-layer perceptrons (simple neural networks)
DK-nearest neighbors as base learners
Attempts:
2 left
💡 Hint

Consider which model type can capture nonlinear patterns well and is commonly used in Gradient Boosting.

Hyperparameter
advanced
2:00remaining
Effect of learning rate in Gradient Boosting regression

What happens if you set the learning rate too high in a Gradient Boosting regression model?

AThe model may overfit and fail to generalize well.
BThe model will train slower but be more accurate.
CThe model will ignore the residuals and not improve.
DThe model will always underfit the training data.
Attempts:
2 left
💡 Hint

Think about how a large step size affects the model updates.

🔧 Debug
expert
2:00remaining
Why does this Gradient Boosting regression model raise a ValueError?

Consider this code snippet:

from sklearn.ensemble import GradientBoostingRegressor
model = GradientBoostingRegressor(n_estimators=100, loss='log_loss')
model.fit(X_train, y_train)

Why does it raise a ValueError?

ABecause 'log_loss' is not a valid loss function for regression tasks.
BBecause n_estimators must be less than 50 for Gradient Boosting.
CBecause GradientBoostingRegressor requires y_train to be categorical.
DBecause the input data X_train is missing.
Attempts:
2 left
💡 Hint

Check the allowed loss functions for regression in Gradient Boosting.

Practice

(1/5)
1. What is the main idea behind Gradient Boosting for regression?
easy
A. Combining many simple models step-by-step to improve predictions
B. Using a single complex model to predict values
C. Randomly guessing values and selecting the best guess
D. Using only one decision tree without updates

Solution

  1. Step 1: Understand Gradient Boosting concept

    Gradient Boosting builds a strong model by adding simple models one after another, each fixing errors of the previous.
  2. Step 2: Compare options with this idea

    Only Combining many simple models step-by-step to improve predictions describes combining many simple models step-by-step to improve predictions.
  3. Final Answer:

    Combining many simple models step-by-step to improve predictions -> Option A
  4. Quick Check:

    Gradient Boosting = Combining simple models [OK]
Hint: Remember: Gradient Boosting adds models one by one [OK]
Common Mistakes:
  • Thinking it uses only one model
  • Confusing with random guessing
  • Assuming it uses a single complex model
2. Which of the following is the correct way to create a Gradient Boosting Regressor in Python using scikit-learn?
easy
A. import GradientBoostingRegressor model = GradientBoostingRegressor()
B. from sklearn.linear_model import GradientBoostingRegressor model = GradientBoostingRegressor(learning_rate=0.1)
C. from sklearn.ensemble import GradientBoostingClassifier model = GradientBoostingClassifier(n_estimators=100)
D. from sklearn.ensemble import GradientBoostingRegressor model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1)

Solution

  1. Step 1: Identify correct import and class for regression

    GradientBoostingRegressor is in sklearn.ensemble, not sklearn.linear_model or a classifier.
  2. Step 2: Check syntax correctness

    from sklearn.ensemble import GradientBoostingRegressor model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1) correctly imports and creates the model with parameters n_estimators and learning_rate.
  3. Final Answer:

    Correct import and model creation with sklearn.ensemble.GradientBoostingRegressor -> Option D
  4. Quick Check:

    Correct import and class = from sklearn.ensemble import GradientBoostingRegressor model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1) [OK]
Hint: Use sklearn.ensemble for GradientBoostingRegressor [OK]
Common Mistakes:
  • Importing from wrong module
  • Using classifier instead of regressor
  • Missing parameters or wrong syntax
3. What will be the output of the following code snippet?
from sklearn.ensemble import GradientBoostingRegressor
import numpy as np

X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1.5, 3.5, 5.5, 7.5, 9.5])
model = GradientBoostingRegressor(n_estimators=10, learning_rate=0.5)
model.fit(X, y)
pred = model.predict(np.array([[6]]))
print(round(pred[0], 1))
medium
A. 10.0
B. 11.5
C. 12.0
D. 9.5

Solution

  1. Step 1: Understand training data pattern

    y roughly equals 2*x - 0.5 (1.5, 3.5, 5.5, 7.5, 9.5). So for x=6, expected y ~ 11.5.
  2. Step 2: Predict with Gradient Boosting model

    Model with 10 estimators and learning rate 0.5 fits this pattern well, predicting close to 11.5 for input 6.
  3. Final Answer:

    11.5 -> Option B
  4. Quick Check:

    Prediction for 6 ≈ 11.5 [OK]
Hint: Check pattern in y to guess prediction quickly [OK]
Common Mistakes:
  • Ignoring the linear pattern in data
  • Confusing classifier with regressor output
  • Rounding errors or wrong rounding
4. Identify the error in this Gradient Boosting regression code and fix it:
from sklearn.ensemble import GradientBoostingRegressor
X = [[1], [2], [3]]
y = [2, 4, 6]
model = GradientBoostingRegressor(n_estimators=50)
model.fit(X, y)
print(model.predict([4]))
medium
A. Import GradientBoostingClassifier instead
B. Change n_estimators to 1
C. Change predict input to [[4]] instead of [4]
D. Change y to a numpy array

Solution

  1. Step 1: Check input shape for predict method

    Model expects 2D array for predict, but [4] is 1D. It should be [[4]] to match training input shape.
  2. Step 2: Fix predict input shape

    Changing predict input to [[4]] fixes the error and allows prediction.
  3. Final Answer:

    Change predict input to [[4]] instead of [4] -> Option C
  4. Quick Check:

    Predict input shape must match training input [OK]
Hint: Always use 2D array for predict input in scikit-learn [OK]
Common Mistakes:
  • Passing 1D array to predict
  • Changing unrelated parameters
  • Using classifier instead of regressor
5. You want to improve your Gradient Boosting regression model's accuracy on a dataset but notice it overfits. Which combination of parameter changes is best to reduce overfitting?
hard
A. Decrease n_estimators and decrease learning_rate
B. Decrease n_estimators and increase learning_rate
C. Increase n_estimators and decrease learning_rate
D. Increase n_estimators and increase learning_rate

Solution

  1. Step 1: Understand overfitting in Gradient Boosting

    Overfitting means model fits training data too closely, losing generalization.
  2. Step 2: Adjust parameters to reduce overfitting

    Decreasing n_estimators reduces model complexity; decreasing learning_rate slows learning, both help reduce overfitting.
  3. Final Answer:

    Decrease n_estimators and decrease learning_rate -> Option A
  4. Quick Check:

    Lower complexity and slower learning reduce overfitting [OK]
Hint: Lower n_estimators and learning_rate to fight overfitting [OK]
Common Mistakes:
  • Increasing both parameters causing more overfitting
  • Increasing learning_rate alone
  • Ignoring parameter effects on overfitting