I reproduced the example of https://topepo.github.io/caret/subsampling-for-class-imbalances.html and tried another one. Results are: *perc.over* = 200 *perc.under* = 200 It seems that the parameters are those of *usage* of the function *SMOTE* in the *DMwR* documentation (pag. 82): > **Usage** > SMOTE(form, data, perc.over = 200, k = 5, perc.under = 200, learner = NULL, ...) In *usage* *k = 5*, but I verified only *perc.over* and *perc.under*: library(caret) library(DMwR) set.seed(2969) imbal_train <- twoClassSim(10000, intercept = -20, linearVars = 20) table(imbal_train\$Class) set.seed(9560) smote_train <- SMOTE(Class ~ ., data = imbal_train) table(smote_train\$Class)[2] perc.over <- 100*(table(smote_train\$Class)[2]-table(imbal_train\$Class)[2])/table(imbal_train\$Class)[2] perc.under <- 100*table(smote_train\$Class)[1]/(table(smote_train\$Class)[2]-table(imbal_train\$Class)[2]) perc.over = 200 perc.under = 200 set.seed(1234) imbal_train <- twoClassSim(10000, intercept = -40, linearVars = 40) table(imbal_train\$Class) set.seed(5678) smote_train <- SMOTE(Class ~ ., data = imbal_train) table(smote_train\$Class) perc.over <- 100*(table(smote_train\$Class)[2]-table(imbal_train\$Class)[2])/table(imbal_train$Class)[2] perc.under <- 100*table(smote_train\$Class)[1]/(table(smote_train\$Class)[2]-table(imbal_train\$Class)[2]) perc.over = 200 perc.under = 200