| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- 피파온라인 API
- 구글 스토어 리뷰
- 토픽 모델링
- 블루 아카이브
- 자연어 모델
- NLP
- 데이터넥스트레벨챌린지
- 블루아카이브 토픽모델링
- Optimizer
- 조축회
- 트위치
- 코사인 유사도
- 데벨챌
- CTM
- 다항분포
- geocoding
- 포아송분포
- 문맥을 반영한 토픽모델링
- 붕괴 스타레일
- 개체명 인식
- 클래스 분류
- BERTopic
- 옵티마이저
- 원신
- SBERT
- Tableu
- KeyBert
- Roberta
- 데이터리안
- LDA
- Today
- Total
분석하고싶은코코
데이터분석(3) - 랜덤 포레스트 본문
오늘은 데이터 분석보다 데이터 분석 방법에서 대해서 작성해봅니다.
데이터 분석 방법을 하나씩 익혀갈 필요성이 있다고 생각되어서 앞으로도 데이터 분석을 먼저해보고 그 데이터 분석에서 활용한 데이터 분석 기법에 대한 글을 작성해나갈 계획입니다.
여튼 스타트!
랜덤 포레스트(Random Forest)
'약한 학습기들을 생성한 후 이를 선형 결합하여 최종 학습기를 만드는 방법'으로 정의할 수 있다.
이 랜덤 포레스트를 알기 전에 알아야 할 상위 개념이 있는데 앙상블(Ensemble)이다. 앙상블은 하나의 훈련 데이터를 통해 여러개의 예측 모형을 만들고 최종적으로 하나의 예측 모형을 만드는 과정을 나타냅니다. 그 방법으로는 배깅, 부스팅, 랜덤 포레스트 등의 다양한 기법이 존재합니다.
모든 기법들을 다루지 않고 이번 글에서는 랜덤 포레스트에서 이뤄지는 기법들에 대해서 자세하게 다뤄 보도록 하겠습니다.
랜덤 포레스트의 개념은 우선 의사결정나무(Decision Tree)에서 나왔습니다.
(의사결정나무는 수학시간에 배웠던거 같은데 언제 배웠는지는 정확하게 기억나지 않는다.)
데이터 분석을 하는데 의사결정나무를 사용하게 된다면? 결과가 결국 하나의 데이터에만 적합한 과적합(Overfitting)현상이 일어나게 됩니다. 특정 데이터만 적합하고 나머지 데이터에는 예측하는 의미가 없는 모델이 생성이 된다는 것입니다. 그래서 이 부분을 해결하고자 행해지는게 가지치기입니다. 하지만 가지치기를 통해서 과적합을 해결하기 어렵습니다. 그래서 탄생하게 된 것이 랜덤 포레스트입니다. 그래서 탄생한 과정을 순서대로 작성하면서 랜덤 포레스트를 알아가 보겠습니다.
1. 부트스트랩(Bootstrap)
부트스트랩의 과정을 간단한 예로 비유해보겠습니다.
주머니에 각각 다른 특성의 25가지 공이 존재합니다.
주머니에서 임의로 5개를 뽑아 5개의 그룹을 만들려고 합니다.
단, 임의 추출로 뽑혀 그룹을 이룬 공을 다시 주머니에 넣어야합니다.
이런 3가지 규칙으로 그룹을 만들게 되면 당연히 각 그룹의 공이 완전 다를 수도 있고, 일부 겹칠 수 있습니다.
이 과정이 부트스트랩입니다.
2. 특성값 선택
1번 과정을 통해서 5개의 그룹을 만들었고 각 그룹에는 5개의 공이 들어가있죠. 공에는 공통된 특성이 존재합니다. 간단하게 생각해봐도 지름, 무게, 색상, 무늬 등... 떠오르는게 많으실겁니다. 이제 이 이런 특성을 N개 있다고 가정해보겠습니다. 그러면 여기도 똑같이 M개를 랜덤하게 뽑을겁니다. 그러면 M개의 기준은 어떻게 되는가? 이게 가장 핵심이겠죠? 많은 경험자들의 추천과 sklean에서 기본 제공하는 기준은 N의 제곱근입니다. 숫자로 표현하면 예를들어 n=25라면 m=5가 됩니다.
3. 선택된 특성 값으로 의사결정나무를 생성
우리가 알아가고자 하는 개념은 랜덤 포레스트입니다. 이것이 어디서부터 나왔다? 의사결정나무입니다. 여기서 그 의사결정나무가 등장합니다. 랜덤하게 선택된 M개의 특성으로 의사결정나무를 생성합니다.
4. 1~3번 과정을 k번 반복하게 됩니다. 여러번 반복한 과정을 통해서 가장 많이 나온 값, 혹은 평균을 선택하여 최종 모델을 선택합니다. (이 과정이 앞에서 이야기 했던 대개념인 앙상블의 개념이죠!)
** k번 반복하는데 대체 몇 번을 반복해야하는가 이것이 문제가 됩니다. 이 숫자는 높을수록 모델의 정확성이 높아질 겁니다. 다만 이 숫자가 늘어남에 따라 컴퓨터가 처리해야하는 양이 늘어나기 때문에 성능에 문제가 될 수 있습니다. 그래서 적절한 k를 찾는것이 좋습니다.
이 과정이 랜덤포레스트의 과정의 전부입니다!
'데이터분석' 카테고리의 다른 글
| 이디야는 스타벅스 근처에 입점한다? (0) | 2022.11.25 |
|---|---|
| 제주도 교통량 예측(1)_EDA (0) | 2022.10.11 |
| 데이터분석(4) - 타이타닉 생존자 구하기 (0) | 2022.06.27 |
| 데이터 분석(2) - 따릉이 수요량 예측 (0) | 2022.06.06 |
| 데이터 분석 체험하기 - 영화 관객수 예측 (0) | 2022.06.03 |