【问题标题】:debugging caret with SMOTE in R在 R 中使用 SMOTE 调试插入符号
【发布时间】:2018-05-14 18:38:01
【问题描述】:

我正在尝试在caret 的 trainControl 函数中使用 SMOTE in R。按照作者的example我做如下:

#first, create an imbalanced data set
set.seed(2969)
imbal_train <- twoClassSim(10000, intercept = -20, linearVars = 20)
imbal_test  <- twoClassSim(10000, intercept = -20, linearVars = 20)

table(imbal_train$Class)
Class1 Class2 
 9411    589

我想使用SMOTE 算法对我的少数类进行过采样。然而,这必须小心翼翼地进行。例如,在进行交叉验证之前,我们不应该过度采样。这将导致我们出现乐观的泛化错误。

#create my folds (5 in this case)
folds <- createFolds(factor(imbal_train$Class), k = 5, list = TRUE,returnTrain=TRUE)

#trainControl to set up my training phase.
ctrl <- trainControl(method = "cv", index = folds,
                 classProbs = TRUE,
                 summaryFunction = twoClassSummary,
                 savePredictions = "all",
                 ## new option here:
                 sampling = "smote")

#train the model
set.seed(5627)
smote_inside <- train(Class ~ ., data = imbal_train,
                  method = "treebag",
                  nbagg = 50,
                  metric = "ROC",
                  trControl = ctrl)

它运行没有错误。我现在想查看每次迭代中使用的训练和测试集。我需要确保在对训练文件夹进行过采样之前,保留一个文件夹并且在其中没有创建新的合成记录。

查看train 输出的对象,我可以看到smote_inside$control 可能有一些信息。具体来说,它有indexindex_out:这些是每次cv 迭代中训练和测试的行索引。但是,当我这样做时:

lista=smote_inside$control
dd=imbal_train[lista$index$Fold1,] #training data first cv iteration
table(dd$Class)
Class1 Class2 
7529    471 

你可以看到它仍然是不平衡的。 SMOTE 应该从少数类中创建一些合成记录。也许这些信息保存在另一个地方?

问题:

  1. 如何查看使用 smote 创建的新训练记录以平衡数据?

  2. 如何确定测试文件夹没有被过采样污染?

  3. 在哪里可以找到插入符号对 SMOTE 的作用?指向源代码的指针。

【问题讨论】:

    标签: r machine-learning cross-validation r-caret


    【解决方案1】:

    一些答案​​:

    1. 它不保留该信息

    2. 它旨在不污染保留数据。如果您想要证明(超出您引用的链接中显示的内容),请查看createModel 以了解它是如何进行采样的,并查看predictionFunction 以了解在预测之前如何处理数据。

    3. 包源基本上随处可用。上面的两个函数(连同probFunction)来工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      相关资源
      最近更新 更多