강의 제목 : 머신러닝 & AI 첫걸음 시작하기
4주차
- Ensemble의 개념을 이해할 수 있다.
- Ensemble 종류의 차이점에 대해 알고, 데이터를 통해 직접 실습해볼 수 있다.
- 결과에 대해 중요한 변수를 파악할 수 있다.
- 왜 아직 딥러닝보다 AI가 많이 쓰이는지 알 수 있다.
1. Ensemble 개념
- 다양한 모델을 통해 성능을 높여보자!
여러 개의 Base model을 이용해서 하나의 model을 만드는 것.
- Base model들을 각각 Learner 1, Learner 2, ..., Learner p라고 하자.
Train Dataset 각 Learner들에 넣어서 학습한 다음 Test Dataset을 통해 Prediction한다.
- 장점: 기존의 Tree model보다 성능이 좋다.
- 단점: model이 복잡하기 때문에 해석이 어렵다.
2. Ensemble 종류
Bagging, Random Forest, Boosting은 Learner를 Tree에 기반한 model을 사용한다.
1) Bagging
- 복원추출(sampling with replacement)를 통해 새롭게 sample을 추출
- 추출되지 않은 sample을 통해 Error를 계산
- Decision Tree보다 성능이 좋다.
- 문제점: 각 Learner에 중복된 데이터가 존재
→ Learner들이 독립적이지 않다. 즉, 비슷한 Dataset에 대한 결과가 많다.
→ Learner의 수가 증가할수록 전체 분산이 높아질 수 있다.
2) Random Forest
- Bagging의 문제점을 보완하기 위한 것.
- Bagging + 변수들도 랜덤으로 추출하여 Learner들에 적용
- model의 분산을 감소시키기 때문에 Bagging보다 성능이 좋다.
3) Boosting
- Learner들에 넣어 학습하는 것을 여러 번 반복(Round1, Round2, ...)
- 복원추출할 때 잘 분류되지 않은 데이터에 가중치를 높여 학습하자.
- 기본적인 기법 : AdaBoost(Adaptive Boost)
- Round를 시작하기 전 그 전 Round에서 잘 분류되지 않은 데이터에 가중치를 두고 복원추출
- 주로 사용되는 기법 : Gradient Boosting
- 각 Round마다 잔차(Residual)를 예측하는 model로 학습
- XGBoost < LightGBM < CatBoost
4) Stacking
- Tree기반이 아닌 다양한 model을 이용하여 학습
1) 각 Learner로 학습한 후 Prediction을 추가하여 새로운 Train Data 생성
2) Prediction을 추가한 새로운 Test Data 생성
3) New Train Data - Learner - New Test Data를 통해 Prediction
5) Ensemble in Ensemble
- 강사님께서 가장 많이 사용하는 기법이라고 한다.
- Learner들도 Ensemble인 경우를 말한다. 보통 10~30개의 Learner를 사용한다고 함.
- 단일 Ensemble보다 성능이 좋음
- hyperparameter에 민감하지 않음
3. 중요한 변수 추출
1) feature importance의 문제
- Ensemble에서는 feature importance를 추출하는 알고리즘이 내재되어 있다.
- Consistency : 중요도는 각 Learner에서도 바뀌지 않아야 한다.
But 대부분은 inconsistency하다.
→ Shap value 등장
2) Shap value
- 다른 features에 따라 해당 feature의 marginal contribution을 여러번 측정 후 평균
- 목적 : 실제 예측과 평균 예측의 차이를 설명
- 그래프를 통해 직관적으로 이해 가능
ex1) contribution vs features : 양/음의 관계를 설명 가능
ex2) feature vs Shap value : feature의 값에 따라 부분적으로 설명 가능
4. 아직 딥러닝보다 우수한 이유?
- 딥러닝은 Graphical representation에서 우수.
우리가 직면하는 문제들은 대부분 Graphical한 요소가 없다.
image에서는 연속성을 가정하지만, Tree에서는 각 feature들의 독립성을 가정한다.
- Tree에 기반한 학습은 직관적으로 설명이 가능하다.
느낀점
- 각 Ensemble의 종류에 따라 실습할 수 있어서 개념에 대해 더 잘 이해할 수 있었다.
- 다른 유형의 데이터를 찾아 실제로 적용해봐야 확실히 이해하고 받아들일 수 있을 것 같다.
- 벌써 4주차이다. 배운 것은 많은데 내가 받아들인 부분은 매우 작은 것 같다.
- 반드시 5주차 학습노트를 쓰기 전까지는 2번 이상 복습할 것이다!!!