부스팅은 앙상블 기법중 하나이다. 앙상블 기법은 모형 하나를 만드는 것이 아닌

여러 개의 모형을 만들어서 평균을 내서 예측을 하는 것이다.


예를 들어서 700명의 데이터 중에서 500명만 뽑아서 예측 작업을 한다면, 

복원추출을 사용하여 모델을 여러번 만들게 되면 각 셋마다 완벽히 중복되지 않는

여러 셋을 만들수 있는 것이다.


즉 앙상블 기법은 단독 모델로 예측하는 것이 아닌 여러 모델을 생성하여 예측을 하고

평균을 통해 이 결과를 예측하는 기법이다.


저번 포스팅에서 진행했던 실습을 이어서 해보자.


1
2
3
4
5
6
#10 trial 과 부스트드 결정 트리
credit_boost10<-C5.0(credit_train[-17],credit_train$default,
                     trials=10)
credit_boost10
summary(credit_boost10)
  #r=900개의 (10번) 시도중 3.4퍼 (31개) 만 오류남
cs


소스코드는 기존과 동일하지만, 달라진 점이 있다면 trials (시도)를 10으로

즉 10번 시도한 평균치를 바탕으로 모델을 생성한다.




summary(credit_boost10) 을 통해 확인해보면 

900번의 시도중 에러가 31개로 부스팅 시도 전보다 줄어든 것을 확인할 수 있다.



1
2
3
4
5
6
credit_boost_pred10<-predict(credit_boost10,credit_test)
 
CrossTable(credit_test$default,credit_boost_pred10,
           prop.chisq=FALSE,prop.c=FALSE,prop.r=FALSE,
           dnn=c("actual default""predict default"))
            #오차율이 23퍼센트로 줄어들었다 
cs

위에서 생성한 예측 모델을 활용하여 test 데이터를 예측한다.


이 결과를 CrossTable로 확인해보면 오차율이 23퍼센트로 감소했음을 확인할수있다.

해당 프로세스와 동일하게 부스팅을 100번으로 맞추고 시도해 보면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#100 trials 과 부스트드 결정 트리 
credit_boost100<-C5.0(credit_train[-17],credit_train$default,
                     trials=100)
credit_boost100
summary(credit_boost100)
  #900번 시도중 오차0 
 
credit_boost_pred100<-predict(credit_boost100,credit_test)
 
CrossTable(credit_test$default,credit_boost_pred100,
           prop.chisq=FALSE,prop.c=FALSE,prop.r=FALSE,
           dnn=c("actual default""predict default"))
          #오차율이 22퍼센트로 줄어들었다 
cs

이렇게 진행할 수 있으며, 크로스테이블을 활용하여 결과를 확인해 본다면
오차가 줄어든 것을 확인할 수 있다.

이처럼 부스팅 기법은 복원추출을 바탕으로 여러 모델을 만들어 그 평균치를 활용하기 때문에 기존에 1회 시도했을때의 예측보다 예측의 정확도가 높아지는 경향을 보인다.




+ Recent posts