The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

ROBOSRMSMOTE

R License

Overview

ROBOSRMSMOTE (Robust Oversampling with RM-SMOTE) provides a framework for imbalanced classification tasks. This package extends Mahalanobis distance-based oversampling techniques by integrating robust covariance estimators to better handle outliers and complex data distributions. The implemented methodology builds upon and significantly expands the RM-SMOTE algorithm originally proposed by Taban et al. (2025).

Seven robust covariance estimators are supported.

Taban, R., Nunes, C. and Oliveira, M.R. (2025). RM-SMOTE: a new robust balancing technique. Statistical Methods & Applications. https://doi.org/10.1007/s10260-025-00819-8


Installation

install.packages("ROBOSRMSMOTE")

Core Functions

Function Description
ROBOS_RM_SMOTE() Main function — generates synthetic minority observations
weighting() Computes robust Mahalanobis weights for minority class
get_robust_cov() Fits one of 7 robust covariance estimators

Supported Covariance Estimators

cov_method Estimator
"mcd" Minimum Covariance Determinant (default)
"mve" Minimum Volume Ellipsoid
"mest" M-estimator
"mmest" MM-estimator
"sde" Stahel-Donoho Estimator
"sest" S-estimator
"ogk" Orthogonalized Gnanadesikan-Kettenring

Quick Start

library(ROBOSRMSMOTE)

# Load the example dataset (haberman: IR ≈ 2.78, n = 306)
data(haberman)
table(haberman$class)
#> negative positive
#>      225       81

# Balance with ROBOS_RM_SMOTE using MCD (default)
balanced <- ROBOS_RM_SMOTE(dt = haberman, target = "positive", eIR = 1)
table(balanced$class)
#> negative positive
#>      225      225

# Use a different robust estimator
balanced_ogk <- ROBOS_RM_SMOTE(dt     = haberman,
                                target = "positive",
                                eIR    = 1,
                                cov_method  = "ogk",
                                weight_func = 2)   # omega_B weighting
table(balanced_ogk$class)

Weighting Functions

weight_func Formula Behaviour
1 ω_A: weight = 0 Hard exclusion of outliers
2 ω_B: weight = 1/MD² Soft down-weighting
3 ω_C: weight = τ/MD² Minimal down-weighting

License

GPL-3 © Emre Dunder, Mehmet Ali Cengiz, Zainab Subhi Mahmood Hawrami, Abdulmohsen Alharthi

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.