Ensemble1 : Bagging
Rは基本データ「Iris」データを用い,Ensembleモデルを用いる前にデータの基本構造を探索する.
ターゲット変数はSpeciesに設定され、setosaとnonetosaに分けられます.
iris$Species <- as.character(iris$Species)
iris$Species[iris$Species !="setosa"] <- "non setosa"
iris$Species <- as.factor(iris$Species)
library(ipred)
irisbag = bagging(Species ~ ., data=iris, nbagg = 135)
library(caret)
tmp = sample(1:150,120)
iris_tr = iris[tmp,]
iris_test = iris[-tmp,]
irisbag_pred = predict(irisbag, iris_test)
table(irisbag_pred, iris_test$Species)
#Parameter selection
tr_err = test_err = c()
for (i in 1:150){
irisbag = bagging(Species ~ ., data = iris_tr, nbagg = i)
iris_pred_tr = predict(irisbag, iris_tr)
iris_pred_test = predict(irisbag, iris_test)
tr_err[i] = 1-sum(diag(table(iris_pred_tr, iris_tr$Species)))/nrow(iris_tr)
test_err[i] = 1-sum(diag(table(iris_pred_test, iris_test$Species)))/nrow(iris_test)
}
plot(test_err, type="l", ylim=c(0,0.3))
lines(tr_err,col="red")
ctrl = trainControl(method = "cv", number = 10)
train(Species ~ ., data = iris, method = "treebag",
trControl = ctrl)
グラフをParameter selectionで確認したところ,1〜150の区間で同じ誤り率と10倍交差検証で得られた最適木は135個,計135個と推定された.規格分類をBaggingで行い,精度=1.0,誤り率=0とした.
Reference
この問題について(Ensemble1 : Bagging), 我々は、より多くの情報をここで見つけました https://velog.io/@jesy0412/Ensemble1-Baggingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol