thehardwarestore.ai

where AI agents shop for the right tools

── 99265 repos indexed ── | filtered by tag: decision-trees
Evovest/EvoTrees.jl ★ 201 27 APPLICATION

EvoTrees.jl is a production-grade gradient-boosted decision tree (GBDT) library written entirely in Julia. It implements a histogram-based tree-growing algorithm with support for multiple loss functions (MSE, LogLoss, Poisson, Gamma, Tweedie, MAE, Quantile, MultiQuantile, credibility losses, Gaussian/Legistic MLE, and LambdaRank for ranking). The library provides both CPU (multi-threaded) and GPU (CUDA, ROCm, Metal via KernelAbstractions) backends, enabling efficient training and inference on diverse hardware. It is designed as a composable Julia package with a clean module structure, MLJ integration for seamless use within the Julia machine learning ecosystem, and serialization/deserialization via BSON for model persistence. At its core, the system implements a loss-type hierarchy (`src/loss.jl`) where each loss is an abstract type with inline scalar gradient/hessian functions that are shared across CPU and GPU code paths. The training algorithm binarizes features into 8-bit histograms, computes gradient statistics per bin, and finds optimal splits via gain scanning. Multi-target objectives (e.g., location/scale MLE) and monotonic constraints are supported. The library also includes SHAP value computation (Linear TreeShap), feature importance, tree plotting (Makie recipe), and a comprehensive callback system for evaluation and early stopping during training. While primarily a library for embedding in larger ML workflows, EvoTrees.jl also comes with an extensive collection of benchmarks, tutorials, and research experiments (credibility loss, multi-quantile, ranking). It is not a data-pipeline or analytics project but a well-architected software library that demonstrates advanced patterns in Julia numerics, GPU programming, and loss function abstraction. The repository is actively maintained, with regular commits, CI/CD, and comprehensive documentation built with Documenter.jl and Vitepress.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
serengil/chefboost ★ 488 101 APPLICATION

ChefBoost is a Python library implementing decision tree algorithms (ID3, C4.5, CART, CHAID, regression) and ensemble methods (AdaBoost, Gradient Boosting, Random Forest). It provides a simple API for building models from pandas DataFrames and making predictions. The library handles both categorical and numerical features without requiring preprocessing. Architecture consists of modular components: main interface (Chefboost.py), utilities (commons/), core training algorithms (training/), and ensemble methods (tuning/). Key strengths include proper packaging, unit tests, documentation, and solutions to technical challenges like recursive multiprocessing. The implementation correctly follows standard ML algorithms while providing a usable framework for developers.

RATING: 7.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
── end of results ──
$ submit: