This repository holds the implementation for an additive regressor, i.e.:
Where 
The functions 
This is achieved by combining the boosting algorithm with a modification of mRMR (minimum Redundancy Maximum Relevance) feature selection at each boosting iteration.
The package can be installed with pip:
pip install git+https://github.com/thesis-jdgs/additive-sparse-boost-regression.gitNote: The package is not yet available on PyPI.
The regressor is implemented in asboostreg.py,
and implements the familiar fit and predict methods from scikit-learn.:
from asboostreg import SparseAdditiveBoostingRegressor
from sklearn.datasets import load_boston
X, y = load_boston(return_X_y=True)
sparsereg = SparseAdditiveBoostingRegressor(
    learning_rate=0.01,
    n_estimators=10_000,
    l2_regularization=2.0,
    max_depth=6,
    row_subsample=0.632,
    random_state=0,
    n_iter_no_change=30,
)
sparsereg.fit(X, y)
y_pred = sparsereg.predict(X)To inspect the general characteristics of the model,
the plot_model_information method creates a plotly figure:
sparsereg.plot_model_information()Which creates a figure of the iteration history and model complexity for each feature, like the following:
To inspect the predictions for a dataset X, you can use explain(X):
sparsereg.explain(X)Which creates a figure of the mean importances of each feature, and a plot of the 1D regressor for each selected feature:
We can also decompose the predictions into the additive components,
with the contribution_frame method:
sparsereg.contribution_frame(X)Which returns a pandas DataFrame with the additive components for each feature.



