반환점을 돌아 chapter5를 공부할 4주차가 되었다. 벌써 방학의 절반이 가버렸다....
이번 chapter5는 결정트리 그리고 트리의 앙상블에 대한 주제로 진행되었다.
결정 트리는 True/False 질문을 계속 하면서 정답을 찾고 학습하는 알고리즘이다.
앞 주차에서 배웠던 knn 모델과 로지스틱 회귀 모델과 다르게 특성 중요도(어떤 특성이 유용한지 나타냄)를 알 수 있어 모델의 가중치들에 대해 이해가 쉽고, 설명이 가능하게 만든다는 점에서 결정트리가 유용한 것 같다.
이전에 과대적합과 과소적합을 알아볼 때 테스트 세트를 항상 사용하였다. 하지만 훈련 세트의 일부분을 가져와 '검증 세트'를 만들게 되면 테스트 세트를 사용하지 않고 과대적합과 과소적합을 알아볼 수 있다.
여기서 검증을 여러 번 할 수 있는 방법이 있을까?
당연히 있다. 훈련 세트를 N 부분으로 분할하여 N번 검증을 수행하는 것을 교차 검증, N-폴드 교차 검증이라고 한다.
이전에 2주차에 모델 파라미터에 대해 배워 보았다. 이번에는 모델이 학습할 수 없어 개발자가 지정해야하는 파라미터인 하이퍼파라미터를 튜닝하는 작업에 공부해 보았다.
모델마다 매개변수는 달라지고, 개수가 많아지면 문제는 복잡해진다. 여기서 최적의 값을 찾을 수 있도록 도와주는 '그리드 서치(grid search)'가 있다. 이것은 하이퍼파라미터 탐색과 교차 검증 둘 다 수행할 수 있도록 돕는다.
또한 매개변수의 값을 직접 나열하기 힘들다면 '랜덤 서치'를 이용하면 편리해진다. 매개변수 탐색 값을 지정된 횟수만큼 sampling 할 수 있도록 확률 분포 객체를 전달해준다.
다음으로 배워볼 것은 트리의 앙상블이다. 여기서 앙상블(ensemble)이란 무엇일까?
우리는 지금까지 knn, 선형 회귀, 릿지, 로지스틱 회귀 등을 배웠다. 여기서 실제로 개발자들은 모델을 만들 때 대부분 한 가지가 아닌 여러 개의 알고리즘을 상황에 맞게 조합하여 사용한다는 것이다. 이것을 앙상블(ensemble)이라고 한다. 이 중 chapter5에서는 트리의 앙상블, 랜덤 포레스트(random forest)에 대해 알아보도록 하자
이름 그 자체에서 알 수 있듯이 다수의 결정 트리를 구성하여 숲을 구성하는 앙상블 학습이라고 할 수 있다. 이 학습은 각 트리를 훈련하기 위해 데이터를 무작위로 만드는데, 특이한 점은 데이터는 중복을 허용하여 추출할 수 있다는 점이다. 이 샘플들을 부트스트랩 샘플이라고 한다.
이때 중복을 허용하여 샘플들을 뽑다보니 뽑히지 않은, 남은 샘플도 존재할 수 있다. 이것을 OOB(out of bag) 샘플이라고 한다. OOB 샘플로 훈련한 결정 트리를 평가하여 검증 세트의 역할을 수행한다.
랜덤 포레스트 이외에도 결정트리를 기반으로 한 앙상블의 몇 가지 알고리즘을 공부하였는데, 이 중에 가장 인기가 좋은 '히스토그램 기반 그레이디언트 부스팅(Histogram-based Gradient Boosting)'을 마지막으로 써보자 한다. 이 알고리즘은 입력 특성을 256개의 구간으로 나누어 최적의 분할을 빠르게 찾을 수 있다.
혼공학습단 10기 딥러닝에 대해 알아보자!! 6주차 (0) | 2023.08.20 |
---|---|
혼공학습단 10기 K-평균과 PCA 배워보자 5주차!! (0) | 2023.08.12 |
혼공학습단 10기 머신러닝 배워보자 3주차!! (0) | 2023.07.15 |
혼공학습단 10기 머신러닝 배워보자 2주차!! (0) | 2023.07.07 |
혼공학습단 10기 머신러닝 배워보자 (0) | 2023.07.01 |