Skip to contents

R port of morie.ml.apply_smote. Uses smotefamily::SMOTE when installed and feasible; falls back to random oversampling (duplicate minority rows) otherwise. Returns the resampled (X, y) together with a status list of before/after counts and the method used.

Usage

morie_ml_apply_smote(X, y, random_state = 42L, k_neighbors = NULL)

Arguments

X

Feature data.frame.

y

Binary outcome vector (numeric or factor).

random_state

Integer seed for the random fallback. Default 42.

k_neighbors

Integer or NULL. SMOTE neighbour count; auto-picked to min(5, minority - 1) when NULL.

Value

list(X, y, status) where status mirrors the Python dict keys (method, minority_before, majority_before, imbalance_ratio_before, total_before, total_after, plus class_<label>_before / class_<label>_after).

Examples

set.seed(2)
X <- data.frame(x1 = rnorm(50), x2 = rnorm(50))
y <- c(rep("a", 40), rep("b", 10))
out <- morie_ml_apply_smote(X, y, random_state = 1L, k_neighbors = 1L)
out$status$method
#> [1] "smote"