我正在研究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不能满足要求。
有人有解决方案吗?
因此,我尝试在orde中使用SMOTE()函数