Проблема с использованием функции SMOTE() из пакета DMwR
Я работаю над набором данных Kaggle: https://www.kaggle.com/mlg-ulb/creditcardfraud
Мне приходится сталкиваться с несбалансированными данными. Действительно, существует 492 мошеннических транзакции и 284315 не-мошеннических транзакций. Я настроил обучение и набор тестов с помощью функции sample() следующим образом:
train.test.split <- sample(2
, nrow(df)
, replace = TRUE
, prob = c(0.7, 0.3))
train = df[train.test.split == 1,]
attach(train)
test = df[train.test.split == 2,]
attach(test)
Обучающая выборка содержит 199411 наблюдений, а тестовая - 85396 наблюдений. В наборе обучающих данных у меня 353 мошеннических транзакции, тогда как в тестовом наборе данных 139 не-мошеннических транзакций.
На самом деле я хочу УПРАВЛЯТЬ обучающим набором, сохраняя 353 мошеннических транзакций и сохраняя 353*8=2824 не-мошеннических транзакций.
Кажется, у меня не может быть такого случая с perc.under = 100.
У кого-нибудь есть решение для этого?
Следовательно, я пытаюсь использовать функцию SMOTE() в порядке