경주장

Ensemble Learning 정리 본문

인공지능

Ensemble Learning 정리

달리는치타 2021. 9. 18. 17:57

 

  Decision Tree kNN SVM
Intrinsically Multiclass 🟢 🟢 🟠
Handles Apples and Orange features 🟢 🔴 🔴
Scalability(large data set) 🟢 🔴 🔴
Prediction Accuracy 🔴 🔴 🟢
Parameter tuning 🟢 🟠 🔴

Handles Apples and Orange features - 입력에 Categorical Value가 있어도 되는가?

 

Decision Tree의 장점을 유지하면서 Prediction Accuracy를 높이는 방법이 있을까?

 

Ensemble

- Accuracy of each model should be high enough

- Correlation of each model should be low enough

 

30명이 팀을 구성하여 서로 토론하여 답을 내는 시사상식 퀴즈쇼가 있다고 하자.

  • 전국의 초등학생 30명으로 구성된 팀
  • xxx 교수님을 30명 복제하여 구성된 팀
  • 전국의 대학생 30명으로 구성된 팀

상식적으로 생각하였을때 3번팀이 가장 좋은 성적을 거둘 것이다.

초등학생 30명은 각각의 시사상식이 그리 높지 않고

xxx교수님을 30명 복제한다면 지식의 깊이는 있지만 전문 분야가 한정적일 것이다.

 

 

Ensemble은 크게 나누면 Bagging과 Boosting으로 나눌 수 있다.

1. Bagging(Bootstrap Aggregation)

Bagging은 전국의 대학생 30명을 모집하여 시사상식 퀴즈에 나가는 방식이다.

전문가를 여러명 모셔서 의견을 Voting하거나 Avarage하는 방식이다.

모든 모델의 역할은 동등하다.

Advantage

- Bias를 유지하며 Prediction variance를 낮춘다. => Test Error를 낮춘다!

 

2. Boosting

Each model compensates the error of the previous models

단점 (Hard Case)을 커버해줄 수 있는 Model을 하나씩 만들어 전체를 합쳐서(Aggregation) 하나의 모델을 형성하는 방식

 

 

Decision Tree에 Bagging기법을 적용해 보자!

 

이때 DT의 특성상 같은 Data를 사용하여 구성된 DT는 모두 같은 의사결정을 하는 Tree로 구성된다.

=> Bagging (Ensemble)을 적용하는 이유가 없다 (교수님 복제인간 30명을 모시는 꼴!)

 

=> BootStrap Sample(전체 Data에 대한 복원 추출 Data)을 통한 DT학습

 

DT는 모델의 복잡도 유지를 위해 적당선에서 Decision을 끝내야 하다보니 경계가 축에 각지게 발생하여 곡선의 경계를 잘 표현하지 못한다.

Bagging을 적용하면 복잡도를 유지하며 위와 같은 데이터를 잘 분류할 수 있다.

 

즉, Decision Tree의 장점을 유지하면서 Prediction Accuracy를 높였다.

'인공지능' 카테고리의 다른 글

AdaBoost 이진분류 알고리즘  (0) 2021.09.18
Random Forests 정리  (0) 2021.09.18
Data Preprocessing/ Weight Initialization  (0) 2021.07.19