Full boosting loop: assemble a minimal booster
Advanced classical-mlensemblesgradient-boosting
Implement:
def train_gradient_boosting(input, targets, n_trees, max_depth, learning_rate) -> tuple[float, list[dict]]:
"""Returns (initial_prediction, trees)."""
def predict_gradient_boosting(initial_prediction, trees, learning_rate, input) -> np.ndarray:
"""Replays training's accumulation on new data."""
- Reuse
03-gradient-boosting-negative-gradient's fit_tree_to_negative_gradient and 05-regression-trees's predict_regression_tree, don't reimplement either.
learning_rate scales every tree's contribution, applied identically during training and prediction.