본문 바로가기

취업준비/인공지능

[AI Tech] 1주차 5-1차시 트리 모델

5-1. 트리 모델

1. What is tree model

1.1 트리 모델의 기초 의사결정나무

Decision Tree

- 칼럼(feature) 값들을 어떠한 기준으로 group을 나누어 목적에 맞는 의사결정을 만드는 방법

- 하나의 질문으로 yes 또는 no로 decision을 내려서 분류한다.

 

1.2 트리 모델의 발전

- Decision Tree

- Random Forest

- AdaBoost

- GBM

- XGBoost / LightGBM / CatBoost → 이거를 중점적으로 볼 예정이다.

 

1.3 Bagging & Boosting

여러 개의 Decision Tree를 이용하여 모델을 생성한다.

Bagging

- 데이터 셋을 샘플링하여 모델을 만들어 나가는 것이 특징이다.

- 샘플링한 데이터 셋을 하나로 하나의 Decision Tree가 생성된다.

- 생성한 Decision Tree의 Decision들을 취합(Aggregation)하여 하나의 Decision을 생성한다.

- Bagging = Bootstrap(데이터를 여러 번 Sampling) + Aggregation(종합; Ensemble)

- 다양한 Tree를 생성한다.

- 각 모델이 서로 연관이 없는 병렬 모델이다.

Decision Tree

- 스무고개를 한다고 생각하면 쉽다.

- 일련의 규칙을 찾는 알고리즘이다.

Boosting

- 샘플링 한 데이터 셋에서 적절하지 않은 데이터에 가중치를 적용하여 다른 트리를 만드는 방식이다.

- 정밀한 Tree를 생성한다.

- 이전 Tree의 오류를 기반으로 하는 순차적 모델이다.

 

1.4 LightGBM, XGBoost, CatBoost

크게 두가지로 나누어 생각할 수 있다.

- 균형적 구조 → XGBoost, CatBoost

- 비균형적 구조 → LightGBM

두 방법 모두 크게 다르지 않을 수도 있다.

 

2. Tree model hyper-parameter

2-1. hyper-parameter 살펴보기

Learning rate가 너무 적으면 수렴 속도가 너무 느려지고,

Learning rate가 너무 크면 수렴이 아닌 발산을 할 수도 있다.

모델의 깊이와 잎사귀를 제한하는 방법이 있다. → 이러지 않을 경우 Overfitting의 위험이 있다.

- Column sampling ratio

- Row sampling ratio

 

2-2. hyper-parameter 실습

Category 변수 다루기

- LightGBM과 CatBoost는 pandas의 category 데이터 타입이 가능하다.

- XGBoost는 오직 numeric 데이터 타입만 가능하다.

- XGBoost는 전처리가 필요하다.

Plot metric으로 train log를 확인할 수 있다.

Plot tree로 tree 구조를 확인할 수 있다.

 

 

 

 

 

© NAVER Connect Foundation. All Rights Reserved