0
0
ML Pythonml~20 mins

LightGBM in ML Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
LightGBM Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding LightGBM's Leaf-wise Tree Growth
LightGBM grows trees using a leaf-wise strategy instead of a level-wise one. What is the main advantage of this leaf-wise growth compared to level-wise growth?
AIt ensures all leaves grow equally, maintaining balanced trees.
BIt reduces overfitting by limiting tree depth strictly.
CIt uses random feature selection to reduce training time.
DIt grows deeper trees with fewer splits, improving accuracy and efficiency.
Attempts:
2 left
💡 Hint
Think about how growing the leaf with the largest loss reduction affects tree shape and performance.
Hyperparameter
intermediate
2:00remaining
Choosing the Right LightGBM Hyperparameter for Overfitting Control
Which LightGBM hyperparameter primarily controls the maximum depth of the trees to prevent overfitting?
Amax_depth
Bnum_leaves
Cmin_data_in_leaf
Dlearning_rate
Attempts:
2 left
💡 Hint
This parameter limits how deep the tree can grow.
Predict Output
advanced
2:00remaining
Output of LightGBM Training with Early Stopping
What will be the output of the following Python code snippet using LightGBM?
ML Python
import lightgbm as lgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = load_breast_cancer(return_X_y=True)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
train_data = lgb.Dataset(X_train, label=y_train)
val_data = lgb.Dataset(X_val, label=y_val, reference=train_data)

params = {'objective': 'binary', 'metric': 'binary_logloss', 'verbose': -1}

model = lgb.train(params, train_data, num_boost_round=100, valid_sets=[val_data], early_stopping_rounds=10, verbose_eval=False)
preds = model.predict(X_val, num_iteration=model.best_iteration)
preds_binary = (preds > 0.5).astype(int)
acc = accuracy_score(y_val, preds_binary)
print(f"Accuracy: {acc:.3f}")
AAccuracy: 0.965
BAccuracy: 0.850
CAccuracy: 0.500
DRaises a TypeError due to wrong parameter
Attempts:
2 left
💡 Hint
The breast cancer dataset is easy to classify with LightGBM, expect high accuracy.
Metrics
advanced
2:00remaining
Interpreting LightGBM's Binary Logloss Metric
During LightGBM training for a binary classification task, the binary_logloss metric decreases from 0.6 to 0.2. What does this change indicate about the model?
AThe model's predictions are becoming less accurate.
BThe model's predicted probabilities are closer to true labels.
CThe model is overfitting the training data.
DThe model's accuracy is exactly 80%.
Attempts:
2 left
💡 Hint
Lower logloss means better probability estimates.
🔧 Debug
expert
2:00remaining
Identifying the Cause of a LightGBM Training Error
You run the following LightGBM training code but get the error: "ValueError: Label must be 1-D array." What is the most likely cause?
ML Python
import lightgbm as lgb
import numpy as np

X = np.random.rand(100, 5)
y = np.random.rand(100, 1)  # shape is (100,1)
train_data = lgb.Dataset(X, label=y)
params = {'objective': 'regression'}
model = lgb.train(params, train_data, num_boost_round=10)
AThe num_boost_round value is too low to start training.
BThe feature matrix X has too many columns for LightGBM.
CThe label array y should be 1-dimensional, but it is 2-dimensional.
DThe objective parameter 'regression' is invalid in LightGBM.
Attempts:
2 left
💡 Hint
Check the shape of the label array passed to Dataset.