In each iteration, samples one minority class element x1, then one of x1's nearest neighbors: x2.
Both points are now interpolated / convex-combined, resulting in a new virtual data point x3
for the minority class.

The method handles factor features, too. The gower distance is used for nearest neighbor
calculation, see cluster::daisy.
For interpolation, the new factor level for x3
is sampled from the two given levels of x1 and x2 per feature.

smote(task, rate, nn = 5L, standardize = TRUE, alt.logic = FALSE)

## Arguments

task |
(Task)
The task. |

rate |
(`numeric(1)` )
Factor to upsample the smaller class.
Must be between 1 and `Inf` ,
where 1 means no oversampling and 2 would mean doubling the class size. |

nn |
(`integer(1)` )
Number of nearest neighbors to consider.
Default is 5. |

standardize |
(`integer(1)` )
Standardize input variables before calculating the nearest neighbors
for data sets with numeric input variables only. For mixed variables
(numeric and factor) the gower distance is used and variables are
standardized anyway.
Default is `TRUE` . |

alt.logic |
(`integer(1)` )
Use an alternative logic for selection of minority class observations.
Instead of sampling a minority class element AND one of its nearest
neighbors, each minority class element is taken multiple times (depending
on rate) for the interpolation and only the corresponding nearest neighbor
is sampled.
Default is `FALSE` . |

## Value

Task.

## References

Chawla, N., Bowyer, K., Hall, L., & Kegelmeyer, P. (2000)
*SMOTE: Synthetic Minority Over-sampling TEchnique.*
In International Conference of Knowledge Based Computer Systems, pp. 46-57.
National Center for Software Technology, Mumbai, India, Allied Press.

## See also