Random Forest는 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로, 훈련 과정에서 구성한 다수의 결정 트리로부터 부류(분류) 또는 평균 예측치(회귀 분석)를 출력함으로써 동작한다.
Random Forest 진행 과정
- 훈련 단계
- 훈련 단계에서는 종단 노드에 대한 매개변수와 내부 노드와 관련된 노드 분할 함수(split function)의 매개변수를 최적화하는 작업이 진행된다.
- 데이터 포인트의 훈련 집합 및 실제 데이터 레이블(ground truth label)이 주어졌을 때, 트리의 매개변수는 정의한 목적 함수를 최소화 하도록 선택된다.
- 트리의 성장을 언제 멈출지 결정하기 위해 미리 정의된 여러가지 멈춤 조건이 적용된다.
- T개의 트리로 구성된 하나의 포레스트의 경우, 일반적으로 훈련 과정은 각 트리에 대해 독립적으로 T번 반복된다.
- 랜덤 트리 또는 포레스트에서 주목할 사실은 랜덤성(randomness)이 오직 훈련 과정에만 존재한다는 것이다.
- 트리가 형성된 후 고정되어 있다면 테스트 단계에서는 완전히 결정론적인 특성을 보인다. 즉, 동일한 입력 데이터에 대해 항상 동일한 결과를 낸다.
- 테스트 단계
- 이전에 본 적 없는 데이터 v가 입력으로 주어졌을 때, 각 결정 트리는 사전에 정의된 많은 테스트 값을 계층적으로 적용한다.
- 루트 노드에서 시작해, 각 노드의 분할 함수를 입력 데이터 v에 적용한다.
- 입력 데이터는 이진 테스트의 결과에 따라 오른쪽 또는 왼쪽의 자식 노드로 보내진다. 이 과정은 입력 데이터가 단말 노드에 도달할 때까지 반복된다.
- 트리에서 단말 노드는 대개 입력 v에 대한 출력 값을 내는 예측기(분류기(classifier) 또는 회귀기(regressor))를 갖는다. 포레스트의 경우 각 트리 예측기들의 조합으로 단일 예측치를 만든다.
참고 문헌
'Aiffel > Fundamental' 카테고리의 다른 글
Logistic Regression (0) | 2022.01.06 |
---|---|
Stochastic Gradient Descent (0) | 2022.01.06 |
Pandas로 그래프 그리기 (0) | 2022.01.05 |
Git, Github (0) | 2021.12.30 |
프로그래밍 패러다임 (0) | 2021.12.30 |
댓글