728x90

앙상블이란 여러 동일한 종류나 상이한 모형들의 예측 또는 분류 결과를 종합하여, 최종적인 의사결정에 반영하는 기법이다.

 

1. 배깅(bagging) : 배깅은 훈련 데이터에서 다수의 부트스트랩(bootstrap) 자료를 생성해, 각 자료를 모델링한 후 결합하여, 최종 예측 모형을 만드는 것이다.

 

bagging(formula, data, mfinal, control) : mfinal - 반복수 또는 트리의 수(기본 100), control - 의사결정나무 옵션

 

library(mlbench)
PimaIndiansDiabetes2 = na.omit(PimaIndiansDiabetes2) #결측값 제거

train_idx = sample(1:nrow(PimaIndianDiabetes2),
                   size = 2/3 * nrow(PimaIndianDiabetes2)) #데이터 2/3을 학습 데이터로 사용
train = PimaIndiansDiabetes[train_idx,]
test = PimaIndiansDiabetes[-train_idx,]

library(ipred) #bagging 함수를 사용하기 위한 라이브러리 불러오기

md.bagging = bagging(diabetes~.,
                     data = train,
                     nbagg = 25) #배깅 모델 생성
                        
pred = predict(md.bagging, test)

library(caret) #혼동행렬을 사용하기 위한 라이브러리 불러오기
confusionMatrix(as.factor(pred),
                refernece = test$diabetes,
                positive = "pos")

 

728x90