-
feature_contributions(X)API — every model now exposes afeature_contributions(X)method that decomposes each prediction into an additive scalar bias (the training-set prior) and a per-sample, per-feature contribution matrix of shape(n_samples, n_features). The decomposition is exact:bias + contributions[i].sum() == predict(X)[i]for every sample. Applies toDeepGBoostRegressor,DeepGBoostClassifier,DeepGBoostMultiClassifier,DGBFModel,DGBFMultiOutputModel, andTreeUpdater. -
AditiveDecisionTree— new internal tree class (deepgboost.tree.aditive_decision_tree) that implements the exact prediction-decomposition algorithm.TreeUpdaternow wrapsAditiveDecisionTreeinstead of sklearn'sDecisionTreeRegressor.
feature_importances_removed — thefeature_importances_property has been removed from all model classes (DeepGBoostRegressor,DeepGBoostClassifier,DeepGBoostMultiClassifier,DGBFModel,DGBFMultiOutputModel,TreeUpdater). Usefeature_contributions(X)instead and derive a global importance score asnp.abs(contributions).mean(axis=0).
- Replaced
TestDeepGBoostRegressorFeatureImportanceswithTestDeepGBoostRegressorFeatureContributions; verifies shape, finiteness, bias-equals-prior, and raises-before-fit. - Updated
test_classifier.py(test_feature_contributions_shape) for binary and multiclass paths. - Updated
test_multiclassifier.py(test_feature_contributions) to assert bias shape, finiteness, and exact prior equality. - Added
TestAditiveDecisionTreeContributionsintest_dgbf.py: shape, decomposition identity, root-node bias, depth-1 stump sparsity, and raises-before-fit. - Added
TestTreeUpdaterContributionsintest_dgbf.py: decomposition identity with and without sample weights.
examples/regressor.ipynbrewritten: migrated from Diabetes to California Housing dataset, addedfeature_contributionswalkthrough, updatedplot_importancecall (removed staleX_trainpositional argument).
- Fix wrong tagging and configure semantic release
(
776fb6f)
- #2: Update experiments
(
6c0d713)
Added Classification experiment: ClassificationBootstrapTest is added alongside the existing BootstrapModelTest for regression. Configuration is split into RegressionModels and ClassificationModels
New model XGBoost: : Added XGBoost Regressor and classifier to the benchmark
Model Adapters: Created a model abstract interface and the wrapper implementation for all the models: GradientBoosting, RandomForest, XGBoost, and DeepGBoost.
New datasets: Abalone, Adult, BankMarketing, CaliforniaHousing and Penguins are added (regression and classification). Obsolete datasets removed (Cargo2000, Obesity, Parkinson, Superconductor, Temperature, Wine).
- #4: Run benchmark
(
220b613)
-
chore changed experiment result format to jsonl
-
add benchmar generator
-
update github action filter
-
Deepgboostmulticlassifier, benchmark fixes, ablation config, std from CV folds (
c02e76f) -
Add DeepGBoostMultiClassifier with native softmax multiclass (DGBFMultiOutputModel, per-class single-output trees, hessian-weighted NNLS) - Rename gbm/ → dgbf/ module structure - Fix CrossValidationModelTest std: store per-fold scores (not per-run averages) - Fix BenchmarkGenerator to read *_cross_validation_test.json and strip both bootstrap/cv suffixes - Integrate ablation support into config.json + ExperimentRunner (Ablations: [] section, no-op by default) - Delete standalone run_ablation.py; ablations now run via run_experiments.py - Fix quickstart.ipynb import path after dgbf/ rename - Add COM812 trailing commas across all source files (ruff compliance) - Remove 6 redundant/tautological tests (134 → 128 passing tests)
-
#1: Create python project (
7613924)
Summary New Python package deepgboost: full implementation of the DGBF (Distributed Gradient Boosting Forest) algorithm, including regressor, classifier (binary and multiclass), low-level functional API (DeepGBoostBooster), callback system, and plotting utilities.
Test suite: coverage of all core modules — booster, regressor, classifier, metrics, objectives, callbacks, and training.
Reproducible benchmark: scripts to compare DGBF against RandomForest and GradientBoosting on 9 UCI regression datasets, with pre-generated results (CSV, PNG). DGBF outperforms both in 7 out of 9 datasets.
Example notebooks: quickstart, classifier, regressor, and serialization — all executable and validated with nbmake.
CI/CD: GitHub Actions workflows for multi-version testing (3.10–3.13), linting with ruff, coverage reporting via Codecov, notebook execution, automated PR review with Claude, and PyPI publishing via OIDC Trusted Publishing on v*.. tags.
README: documentation with algorithm description, equations, figures, and benchmark results.
- #5: Add hessian residuals
(
03797f0)
-
Added hessian residuals: Improve the leraning process using the second order derivative from the Taylor expansion (hessian). This is equivalent to use the newton raphsody optimization process. The difference may be noticed mainly in classifier
-
Improve default params: After many iteration improved the default params from both, classifier and regressor models
-
Added agents and skills: Included expertise agents and skills in the project scope to improve the learning process. As well as a mcp connection to github not used in this PR because today the api is falling :(
-
Rerun benchmark results: Still the best model out of the four but it makes me mad not winning in all the datasets. DeepGBoost is a more general model than RandomForest and XGBoost. It should always win.