0

私は実装された 2 つのアンサンブル手法を持っていbaggingますadaboosting

私のグリッド:

grids <- list(
              "knn" = expand.grid(k = c(3, 5, 7, 9, 11, 13, 15))
             )

私の変数:

n <- c(2, 4) 
boots <- createResample(trainData$BAD, times = 50, list = TRUE)

私の袋詰め:

for(i in seq_along(grids)) { 

            method <- names(grids[i])

            for(j in 1:nrow(grids[[i]])) {
                grid <- data.frame(grids[[i]][j, ])
                colnames(grid) <- names(grids[[i]])

                # start bagging
                bagging <- foreach(k = 1:length(n)) %do% {

                    predictions <- foreach(m = 1:n[k], .combine = cbind) %do% {

                        tune <- train(BAD ~ ., data = trainData, method = method, trControl = ctrl, tuneGrid = grid, 
                                      metric = "ROC")

                        pred <- c(predict(tune, newdata = trainData, type = "prob")$BAD,
                                  predict(tune, newdata = testData, type = "prob")$BAD)
                    }
                    pred_means <- rowMeans(predictions) 
                }   
                resu_bag <- c(resu_bag, unlist(bagging))  
            }
        }

私のアダブースト:

for(i in seq_along(grids)) { 
    method <- names(grids[i])

    for(j in 1:nrow(grids[[i]])) {
        grid <- data.frame(grids[[i]][j, ])
        colnames(grid) <- names(grids[[i]])

        # start boosting
        boosting <- foreach(k = 1:length(n)) %do% {

            predictions <- foreach(m = 1:n[k], .combine = cbind) %do% {
            train_boo <- trainData[boots[[m]], ]

            tune <- train(BAD ~ ., data = train_boo, method = method, trControl = ctrl, tuneGrid = grid, 
                          metric = "ROC")
            pred <- c(predict(tune, newdata = trainData, type = "prob")$BAD,
                      predict(tune, newdata = testData, type = "prob")$BAD)
          }
            pred_means <- rowMeans(predictions)
        }
        resu_boo <- c(resu_boo, unlist(boosting))  
    }
}

私の質問:

  1. 実装が正しいかどうかアドバイスをお願いします。
  2. モデルのパフォーマンスは、単一の学習者と同じか、それよりも悪いです。なぜそれが起こるのですか?私は何を間違っていますか?

どうもありがとうございます!

4

0 に答える 0