Implementation:Interpretml Interpret InitializeGradientsAndHessians
| Knowledge Sources | |
|---|---|
| Domains | Machine_Learning, EBM_Core |
| Last Updated | 2026-02-07 12:00 GMT |
Overview
Implements the initialization of gradients and hessians for RMSE regression in the EBM boosting and interaction detection pipelines.
Description
The InitializeGradientsAndHessians.cpp file contains the InitializeRmseGradientsAndHessiansBoosting and InitializeRmseGradientsAndHessiansInteraction functions. RMSE regression is described as "super super special" because it does not need to keep per-sample scores -- it can work directly with gradients. The boosting initialization function iterates through the shared dataset, handling bag replication (for bagging), initial scores (intercept), and writes gradients into the DataSubsetBoosting gradient/hessian arrays. It handles both training and validation subsets by checking the bag direction. The interaction initialization function performs the same operation for DataSetInteraction. Both functions convert float data types to match the compute zone's floating-point precision (float32 or float64).
Usage
Called once during boosting and interaction session initialization, specifically for RMSE regression objectives. The gradients are initialized as the negative residuals (target - prediction), incorporating any initial scores and intercept values provided by the caller.
Code Reference
Source Location
- Repository: Interpretml_Interpret
- File: shared/libebm/InitializeGradientsAndHessians.cpp
Signature
extern void InitializeRmseGradientsAndHessiansBoosting(
const unsigned char* const pDataSetShared,
const double intercept,
const BagEbm direction,
const BagEbm* const aBag,
const double* const aInitScores,
DataSetBoosting* const pDataSet);
extern void InitializeRmseGradientsAndHessiansInteraction(
const unsigned char* const pDataSetShared,
const size_t cWeights,
const double intercept,
const BagEbm* const aBag,
const double* const aInitScores,
DataSetInteraction* const pDataSet);
I/O Contract
| Input | Description |
|---|---|
| pDataSetShared | Shared dataset containing target values |
| intercept | Model intercept value |
| direction | BagEbm{1} for training, BagEbm{-1} for validation |
| aBag | Bag replication array (nullptr for no bagging) |
| aInitScores | Initial prediction scores (optional) |
| Output | Description |
|---|---|
| pDataSet | DataSetBoosting/DataSetInteraction with initialized gradients |
Usage Examples
# Called internally via native bindings
from interpret.glassbox import ExplainableBoostingRegressor
ebm = ExplainableBoostingRegressor()
ebm.fit(X, y) # InitializeGradientsAndHessians runs at start of training for RMSE