Мне было интересно, следует ли проводить передискретизацию до или после разделения моих данных на наборы поездов и тестов.
Это, безусловно, должно быть сделано после разбиения, т. Е. Оно должно применяться только к вашему обучающему набору, а не к проверочным и тестовым наборам; см. также мой соответствующий ответ здесь .
Обычно я видел, как это делалось до того, как разбить примеры в сети, как это
Из фрагмента кода, который вы показываете, совсем не очевидно, что это делается до разделения, как вы утверждаете. Это зависит от того, что именно здесь есть переменная train
: если она является продуктом разбиения теста поезда, то избыточная выборка имеет место после действительно разбиения, как и должно быть.
Однако, не означает ли это, что данные испытаний, скорее всего, будут иметь дублированные выборки из тренировочного набора (потому что мы увеличили выборку учебного набора)? Это означает, что производительность тестирования не обязательно должна быть на новых, невидимых данных.
Собственно, это причина, по которой передискретизация должна выполняться после расщепления на поезд-тест, а не до.
(Однажды я был свидетелем случая, когда модельер изо всех сил пытался понять, почему он получил точность теста ~ 100%, намного выше, чем у обучающего; оказалось, что его начальный набор данных был полон дубликатов - никакого дисбаланса класса здесь, но идея похожа - и некоторые из этих дубликатов закончились в его тестовом наборе после разделения, конечно, не будучи новыми или невидимыми данными ...).
Я в порядке,
Вы не должны:)