Bird
Raised Fist0
ML Pythonml~20 mins

Boosting concept 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
🎖️
Boosting Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
What is the main idea behind boosting in machine learning?
Boosting is a technique used to improve model performance. What best describes its main idea?
AUsing a single model and tuning its hyperparameters to reduce error.
BTraining a single very deep model to capture all data patterns at once.
CRandomly selecting features to train multiple independent models and averaging their results.
DCombining many weak models sequentially, where each new model focuses on correcting errors of the previous ones.
Attempts:
2 left
💡 Hint
Think about how boosting tries to fix mistakes step by step.
Model Choice
intermediate
2:00remaining
Which model is commonly used as a weak learner in boosting algorithms?
Boosting algorithms often use a simple model repeatedly. Which of these is typically used?
AK-nearest neighbors with large k
BDeep convolutional neural networks
CDecision stumps (trees with one split)
DSupport vector machines with complex kernels
Attempts:
2 left
💡 Hint
Weak learners are simple and fast to train.
Metrics
advanced
2:00remaining
In AdaBoost, how are the weights of training samples updated after each iteration?
AdaBoost adjusts sample weights to focus on hard examples. How exactly are these weights updated?
AWeights of all samples are kept the same throughout training.
BWeights of misclassified samples are increased, and weights of correctly classified samples are decreased.
CWeights of correctly classified samples are increased, and misclassified samples are decreased.
DWeights are randomly shuffled after each iteration.
Attempts:
2 left
💡 Hint
Think about how boosting focuses on mistakes.
🔧 Debug
advanced
2:00remaining
What error will this Python snippet raise when implementing a simple boosting weight update?
Consider this code snippet for updating sample weights in boosting: weights = [0.1, 0.2, 0.3, 0.4] predictions = [1, 0, 1, 0] labels = [1, 1, 0, 0] for i in range(len(weights)): if predictions[i] != labels[i] weights[i] *= 1.5 else: weights[i] *= 0.5 print(weights)
ML Python
weights = [0.1, 0.2, 0.3, 0.4]
predictions = [1, 0, 1, 0]
labels = [1, 1, 0, 0]
for i in range(len(weights)):
    if predictions[i] != labels[i]:
        weights[i] *= 1.5
    else:
        weights[i] *= 0.5
print(weights)
ASyntaxError due to missing colon after the if statement
BTypeError because weights list cannot be multiplied by float
CIndexError because of out-of-range index access
DNo error, prints updated weights
Attempts:
2 left
💡 Hint
Check the syntax of the if statement line.
Predict Output
expert
3:00remaining
What is the output of this simplified AdaBoost weight update code?
Given the code below, what is the final list of weights printed? weights = [0.25, 0.25, 0.25, 0.25] predictions = [1, 0, 1, 0] labels = [1, 1, 0, 0] alpha = 0.7 for i in range(len(weights)): if predictions[i] != labels[i]: weights[i] *= (2.718 ** alpha) else: weights[i] *= (2.718 ** (-alpha)) print([round(w, 3) for w in weights])
ML Python
weights = [0.25, 0.25, 0.25, 0.25]
predictions = [1, 0, 1, 0]
labels = [1, 1, 0, 0]
alpha = 0.7
for i in range(len(weights)):
    if predictions[i] != labels[i]:
        weights[i] *= (2.718 ** alpha)
    else:
        weights[i] *= (2.718 ** (-alpha))
print([round(w, 3) for w in weights])
A[0.125, 0.5, 0.5, 0.125]
B[0.125, 0.5, 0.125, 0.5]
C[0.5, 0.125, 0.125, 0.5]
D[0.5, 0.125, 0.5, 0.125]
Attempts:
2 left
💡 Hint
Calculate e^0.7 ≈ 2.013 and e^-0.7 ≈ 0.497, then multiply accordingly.

Practice

(1/5)
1. What is the main idea behind boosting in machine learning?
easy
A. Randomly selecting features for training
B. Using a single complex model to fit data
C. Reducing the size of the dataset
D. Combining many weak models to create a strong model

Solution

  1. Step 1: Understand boosting concept

    Boosting builds a strong model by combining many simple (weak) models.
  2. Step 2: Compare options with definition

    Only Combining many weak models to create a strong model correctly describes this idea; others describe different techniques.
  3. Final Answer:

    Combining many weak models to create a strong model -> Option D
  4. Quick Check:

    Boosting = Combining weak models [OK]
Hint: Boosting = many weak models combined [OK]
Common Mistakes:
  • Thinking boosting uses one complex model
  • Confusing boosting with feature selection
  • Believing boosting reduces dataset size
2. Which of the following is the correct syntax to create an AdaBoost classifier in Python using scikit-learn?
easy
A. from sklearn.ensemble import AdaBoostClassifier model = AdaBoostClassifier()
B. from sklearn.ensemble import AdaBoost model = AdaBoost()
C. from sklearn.boost import AdaBoostClassifier model = AdaBoostClassifier()
D. import AdaBoost from sklearn.ensemble model = AdaBoost()

Solution

  1. Step 1: Recall correct import path

    In scikit-learn, AdaBoostClassifier is in sklearn.ensemble module.
  2. Step 2: Check syntax correctness

    from sklearn.ensemble import AdaBoostClassifier model = AdaBoostClassifier() uses correct import and class name; others have wrong module or syntax.
  3. Final Answer:

    from sklearn.ensemble import AdaBoostClassifier\nmodel = AdaBoostClassifier() -> Option A
  4. Quick Check:

    Correct import and class name = from sklearn.ensemble import AdaBoostClassifier model = AdaBoostClassifier() [OK]
Hint: AdaBoostClassifier is in sklearn.ensemble [OK]
Common Mistakes:
  • Using wrong module like sklearn.boost
  • Incorrect import syntax
  • Wrong class name without 'Classifier'
3. Consider this Python code using AdaBoost:
from sklearn.datasets import load_iris
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=42)
model = AdaBoostClassifier(n_estimators=10, random_state=42)
model.fit(X_train, y_train)
preds = model.predict(X_test)
print(round(accuracy_score(y_test, preds), 2))
What is the printed output?
medium
A. 0.85
B. 0.75
C. 0.97
D. 0.60

Solution

  1. Step 1: Understand the dataset and model

    Iris dataset is simple; AdaBoost with 10 estimators usually achieves accuracy around 0.85 on this split.
  2. Step 2: Check typical AdaBoost accuracy on iris

    Common results show accuracy near 85% on test split with random_state=42 and 10 estimators.
  3. Final Answer:

    0.85 -> Option A
  4. Quick Check:

    Typical AdaBoost iris accuracy = 0.85 [OK]
Hint: AdaBoost on iris usually scores ~0.85 accuracy [OK]
Common Mistakes:
  • Assuming low accuracy for simple dataset
  • Confusing accuracy with training score
  • Ignoring random_state effect
4. The following code tries to train an AdaBoost model but raises an error:
from sklearn.ensemble import AdaBoostClassifier
model = AdaBoostClassifier(n_estimators='ten')
model.fit(X_train, y_train)
What is the cause of the error?
medium
A. Model cannot be trained without specifying 'learning_rate'
B. Missing import for 'X_train' and 'y_train'
C. 'n_estimators' must be an integer, not a string
D. AdaBoostClassifier does not have 'n_estimators' parameter

Solution

  1. Step 1: Check parameter types

    n_estimators expects an integer number of weak learners, not a string.
  2. Step 2: Identify error cause

    Passing 'ten' as string causes a type error; other options are incorrect because imports or learning_rate are not mandatory.
  3. Final Answer:

    'n_estimators' must be an integer, not a string -> Option C
  4. Quick Check:

    n_estimators type error = 'n_estimators' must be an integer, not a string [OK]
Hint: n_estimators must be int, not string [OK]
Common Mistakes:
  • Thinking learning_rate is required
  • Ignoring parameter type requirements
  • Assuming missing imports cause this error
5. You want to improve a weak decision tree model using boosting. Which approach best fits this goal?
hard
A. Increase the depth of a single decision tree
B. Use Gradient Boosting to sequentially correct errors of weak trees
C. Use random forests to average many deep trees
D. Apply PCA to reduce features before training the tree

Solution

  1. Step 1: Understand boosting application

    Boosting improves weak models by sequentially correcting their errors.
  2. Step 2: Match approach to boosting

    Gradient Boosting fits this by building trees one after another to fix mistakes.
  3. Final Answer:

    Use Gradient Boosting to sequentially correct errors of weak trees -> Option B
  4. Quick Check:

    Boosting = sequential error correction [OK]
Hint: Boosting fixes errors step-by-step [OK]
Common Mistakes:
  • Confusing boosting with random forests
  • Trying to fix with one big tree
  • Using PCA unrelated to boosting