Skip to main content

RFX-Fuse: Breiman and Cutler's Unified ML Engine with GPU Acceleration

Project description

RFX-Fuse: Breiman and Cutler's Random Forests as a Forest Unified Learning and Similarity Engine - Extended with Native Explainable Similarity

License: MIT PyPI Python 3.9+ C++17 CUDA arXiv

RFX-Fuse (Random Forests X [X=compression] — Forest Unified Learning and Similarity Engine) delivers Breiman and Cutler's complete vision for Random Forests as a Forests Unified Machine Learning and Similarity Engine with native GPU/CPU support.

Breiman and Cutler designed Random Forests as more than an ensemble predictor. Their original implementation from the early 2000s included classification, regression, unsupervised learning, proximity-based similarity, outlier detection, missing value imputation, and visualization. Modern libraries like scikit-learn's random forests implementation (2010-2011) skipped many of these features.

These capabilities enable it to be a unified learning and similarity engine. With just 1-2 model objects, we can achieve comparable accuracy and output to 3-5 main industery tools. For example, 1 model has comparable output to 4 separate tools for Time Series Regression + native explainable similarity. 1 model = 1 set of trees grown once.

Key Use Cases

Use Case RFX-Fuse Comparable Approach
Recommender Systems 1–2 models 5 tools (FAISS + XGBoost + Shap + Isolation Forests + Custom Code)
Finance Explainability 1 model 3 tools (XGBoost + Shap + Isolation Forests)
Time Series Regression 1 model 4 tools (XGBoost + Shap + Isolation Forests + FAISS)
Imputation Validation 1 model time series methods (general tabular: RFX-Fuse)
Anomaly Detection 1 model 3 tools (Isolation Forests + Shap + Custom Code)

Novel Contributions

  1. Native Explainable Similarity: Breiman and Cutler's original similarity scoring via proximities enable comparable output with Faiss for NDCG + HR on retrieval. Proximity Importance gives the why.
Proximity Importance Example

Explanations available in arXiv paper.

  1. Imputation Quality Validation for General Tabular Data — Rank imputation methods by how "real" the imputed data looks, without ground truth labels.

Comparable Tools Functionality Comparison

Feature RFX-Fuse XGBoost sklearn RF FAISS
Classification
Regression
Unsupervised
Overall importance
Local importance (per-sample) SHAP
Proximity/similarity scoring
Overall proximity importance
Local proximity importance
Top-K similar with explanations
Outlier detection with explanations
Missing value imputation
Weighted bootstrap sampling

Installation

From PyPI (GPU)

pip install rfx-fuse

From PyPI (CPU-only, no build tools required)

pip install rfx-fuse-cpu

Pre-built binary wheel -- no CMake, compiler, or CUDA needed.

From Source (GPU)

git clone https://github.com/chriskuchar/RFX-Fuse.git
cd RFX-Fuse
pip install -e .

From Source (CPU-only)

git clone https://github.com/chriskuchar/RFX-Fuse.git
cd RFX-Fuse
RFX_CPU_ONLY=1 pip install -e .

Prerequisites

  • Python 3.9+
  • CMake 3.12+ (source builds only)
  • C++ compiler with C++17 support (GCC 7+, Clang 5+) (source builds only)
  • OpenMP (usually included with compiler)
  • CUDA toolkit 12.8+ (GPU acceleration only)

Verify Installation

import RFXFuse as rfx
print(f"RFX-Fuse version: {rfx.__version__}")
print(f"CUDA enabled: {rfx.__cuda_enabled__}")

Examples

Each use case has a complete demonstration script in the examples/ folder:

Use Case Demo Script Description
Recommender Systems examples/recommender_system/demo_recommender_system.py MovieLens 25M: similarity retrieval + ranking with explanations
Finance Explainability examples/classification/demo_loan_classification.py Loan default prediction with 4-type explainability
Time Series Regression examples/time_series/demo_time_series.py Bike sharing: prediction + outlier detection
Imputation Validation examples/data_imputation/demo_imputation.py Rank imputation methods without ground truth
Anomaly Detection examples/anomaly_detection/demo_anomaly_detection.py Breiman-Cutler outlier detection
Sample Weights examples/classification/demo_sample_weights.py Weighted bootstrap sampling for classification & regression

Run an example:

cd examples/time_series
python demo_time_series.py

Industry Use Cases

Use Case 1: Recommender Systems

RFX-Fuse Unsupervised for retrieval + RFX-Fuse Supervised for re-ranking on MovieLens 25M.

Recommender System Stage 1:

Recommender System Results Stage 1 Similarity Scoring

Explanations available in arXiv paper.



Recommender System Stage 2 Part 1:

Recommender System Results Stage 2 Supervised Modeling

Explanations available in arXiv paper.

Recommender System Stage 2 Part 2:

Recommender System Results Stage 2 Outlier Detection

Explanations available in arXiv paper.

Recommender System Stage 2 Part 3:

Recommender System Results Stage 2 Top K Retrieval

Explanations available in arXiv paper.

View Code →


Use Case 2: Finance Explainability

Single classifier provides regulatory-compliant explanations (ECOA, GDPR, Fair Lending).

Finance Explainability Results

Finance Explainability Results

Explanations available in arXiv paper.

View Code →


Use Case 3: Time Series Regression

RFX-Fuse Regressor on UCI Bike Sharing dataset with full explainability.

Time Series Results

Explanations available in arXiv paper.

View Code →


Use Case 4: Imputation Quality Validation

Novel capability for general tabular data. Rank imputation methods by how "real" the imputed data looks.

Imputation Validation Results

Explanations available in arXiv paper.

View Code →


Use Case 5: Anomaly Detection

Breiman-Cutler method: train on clean data, anomalies have high P(synthetic).

Anomaly Detection Results

Explanations available in arXiv paper.

View Code →

API Reference

For complete API documentation with all parameters, methods, and examples, see docs/API.md.

Performance

GPU Benchmarks

Environment: NVIDIA RTX 3060 (12GB), AMD Ryzen 7 5800X, 32GB RAM

Use Case Train Size Features Trees Training Time
Recommender (Unsup) 59,047 (×2) 23 1,000 ~1,040s
Recommender (Sup) 47,237 21 1,000 120s
Finance Classification 46,396 15 500 69s
Bike Regression 5,725 4 1,000 24s
Imputation Validation 3,000 12 100 3.6s
Anomaly Detection 15,000 8 100 112s

Training times include predictions, similarity scoring, proximity importance, local importance, and all explainability features where applicable.

CPU Benchmarks

Coming soon.

Methodology

For detailed methodology, see:

Citation

@article{kuchar2026rfxfuse,
  author       = {Kuchar, Chris},
  title        = {RFX-Fuse: Breiman and Cutler's Unified ML Engine + Native Explainable Similarity},
  year         = {2026},
  journal      = {arXiv preprint arXiv:2511.19493},
  url          = {https://arxiv.org/html/2603.13234v1}
}

Acknowledgments

This work aims to implement the full unified learning and similarity engine Dr. Leo Breiman and Dr. Cutler created when they made their Fortran/Java implementation in the early 2000s.

Special thanks to Dr. Adele Cutler for generously sharing original Breiman-Cutler Random Forest source materials, which made this faithful restoration and extension possible.

Work in Progress

  • Multi-class classification support

Previous Work

License

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rfx_fuse-1.1.3.tar.gz (528.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rfx_fuse-1.1.3-cp313-cp313-win_amd64.whl (55.4 MB view details)

Uploaded CPython 3.13Windows x86-64

rfx_fuse-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

rfx_fuse-1.1.3-cp312-cp312-win_amd64.whl (55.4 MB view details)

Uploaded CPython 3.12Windows x86-64

rfx_fuse-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

rfx_fuse-1.1.3-cp311-cp311-win_amd64.whl (55.4 MB view details)

Uploaded CPython 3.11Windows x86-64

rfx_fuse-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

File details

Details for the file rfx_fuse-1.1.3.tar.gz.

File metadata

  • Download URL: rfx_fuse-1.1.3.tar.gz
  • Upload date:
  • Size: 528.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rfx_fuse-1.1.3.tar.gz
Algorithm Hash digest
SHA256 958af25b84f6d16e37c889c66ba7edc72f3df99e1d49a7b990f2e31faaa9b911
MD5 70258112bbd727394f4407474b5f5b2c
BLAKE2b-256 0b87053f706f15a1ee7485faf8a410becd0c7d62a4227225464c71cf97bf288a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3.tar.gz:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfx_fuse-1.1.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rfx_fuse-1.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rfx_fuse-1.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2d2e749c4384a1a1a3485f4ade8cbe566c240dfc0689a25a1ba50db345c7d90f
MD5 76dca5e79d209fe538d7b404c9a8896f
BLAKE2b-256 832f89a8f6d83f92eb505d3405b1643629b8721aa15fa52038be2e3c51466395

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfx_fuse-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rfx_fuse-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0a86f9e497976bdd5cfab867ff51980825657748641a6832262658545b5f2b0
MD5 21b952fa55145e6a7c39d00e1cbf2039
BLAKE2b-256 522cac19f7cf5cc3ed91af7d85c1671e8ff640bf6946c99b83b20641f906514e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfx_fuse-1.1.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rfx_fuse-1.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rfx_fuse-1.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 58dc969c3ef85620c457b0aa46faecc5e6d91d755a65bbd4b0db02ddb1527779
MD5 aeb917f938e4ae52a2cca7c6f85525bc
BLAKE2b-256 eea46ae868220de1fd01095647f7cf91ab67bae77115d5eaa61198a8d435fe97

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfx_fuse-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rfx_fuse-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 967b4b6cb74a603f4bebec709f8faae46bff3f1794343650bbca60e65ad9f8a6
MD5 458e4ce64b235bfddd0e6c5736afcf55
BLAKE2b-256 e2a08f4c399bc97e8ab03991b5ed0c0c089ce19a9f20a28a511ebb199a71246c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfx_fuse-1.1.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rfx_fuse-1.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rfx_fuse-1.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0c7eb09f710f3e02b7fc11417db641cb125cef2bb0dfb962085145893cadb4de
MD5 963e3964a6fe7765edbe27ca4aa25f7a
BLAKE2b-256 a3f81dacaa3f6dd68ad2997cfb116c80cd14939c00b6d74cb9b1a5f905efc4b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3-cp311-cp311-win_amd64.whl:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfx_fuse-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rfx_fuse-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87dc15ba0a238708214db1f15da2dd2a8364178d00ce915b5acf29293070f9b6
MD5 d12b84b28a605baa6868f4817795dd4a
BLAKE2b-256 72bd24c6815d70e63970228b9480fcac86cac48595facd438d12fb2e3a6787a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfx_fuse-1.1.3-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on chriskuchar/RFX-Fuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page