undersampling - решение заключается в выкидывании части данных. Например, если два класса: первый — очень большой; второй — совсем маленький. В этом случае, можно выкинуть большую часть объектов первого класса, чтобы размеры классов примерно сравнялись. При этом то, сколько именно объектов каждого класса мы выбрасываем, это гиперпараметр, который надо подобрать по отложенной выборке или на кросс-валидации.
oversampling - ровно противоположный, выборку из маленького класса мы дублируем чтобы сравнять размеры классов. Аналогично предыдущему варианту, насколько мы будем увеличивать меньший класс – тоже гиперпараметр.