Skip to main content

iBRF

This repository contains the code and supplementary files for the proposed iBRF (Improved Balanced Random Forest) classifier.

Dependencies

This project uses the following libraries:

scikit-learn imbalanced-learn

Paper

The paper on this work has been published in IEEE Xplore.

Title - iBRF: Improved Balanced Random Forest Classifier

DOI: https://doi.org/10.23919/FRUCT61870.2024.10516372

Synopsis

This paper proposes a modification to the original BRF classifier for enhanced prediction performance.

In the original algorithm, the Random Undersampling (RUS) technique is utilized to balance the bootstrap samples. However, randomly eliminating too many samples from the data leads to significant data loss, resulting in a major decline in performance.

This paper proposed a novel sampling approach that, when incorporated into the framework of the RF classifier, achieves better and more generalized prediction performance. The proposed algorithm outperforms the original BRF classifier.

Original BRF classifier implementation in the imblearn library: https://imbalanced-learn.org/stable/references/generated/imblearn.ensemble.BalancedRandomForestClassifier.html

Installation

pip install iBRF

Usage

from ibrf import iBRF

clf = iBRF(balance_split=0.65, n_estimators=200, random_state=42)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

Screenshots

App Screenshot

Note

This repository currently contains the earliest version of the proposed iBRF framework. A more advanced version is currently under development.

LemaÃŽtre, G., Nogueira, F. and Aridas, C.K., 2017. Imbalanced-learn: A python toolbox to tackle the curse of imbalanced datasets in machine learning. Journal of machine learning research, 18(17), pp.1-5.

BibTex Citation

@INPROCEEDINGS{10516372,
  author={Newaz, Asif and Mohosheu, Md. Salman and Noman, Md. Abdullah Al and Jabid, Taskeed},
  booktitle={2024 35th Conference of Open Innovations Association (FRUCT)}, 
  title={iBRF: Improved Balanced Random Forest Classifier}, 
  year={2024},
  volume={},
  number={},
  pages={501-508},
  keywords={Technological innovation;Data preprocessing;Benchmark testing;Prediction algorithms;Data models;Classification algorithms;Ensemble learning},
  doi={10.23919/FRUCT61870.2024.10516372}}

Release files for iBRF 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iBRF 0.1.1
File Size Uploaded
ibrf-0.1.1.tar.gz 8.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iBRF 0.1.1
File Interpreter ABI Platform
ibrf-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 16.6 kB

Release files / ibrf-0.1.1.tar.gz

Download URL ibrf-0.1.1.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
036a9a1be88a526b45679c16d0db400703def02e88f9eb6b0a0efc17076056bc
BLAKE2b-256 checksum
How to use checksums
9eedd994d3f76fe4e191d3abd8735c05e859ebb208820c14c7c4b1079ebe2b37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release files / ibrf-0.1.1-py3-none-any.whl

Download URL ibrf-0.1.1-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
838a37f241260cbecf7639bd63d70ff27d332676a2138af72d1e751109db58e0
BLAKE2b-256 checksum
How to use checksums
9f69c643832eab0657218178d066639763af0409711e2f6293f547990fa465b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page