티스토리 뷰

  • 결정트리 학습법은 휼륭한 머신러닝의 한 방법이지만, 주어진 학습 데이터에 따라 생성되는 의사결정트리가 매우 달라져서 일반화하여 사용하기가 어려움
  • 결정 트리를 이용한 학습 결과 역시 성능과 변동이 폭이 큼
  • >>>랜덤포레스트 등장 ===> 여러 개의 무작위 의사결정트리로 이루어진 숲이라는 개념으로 이해

1. 랜덤포레스트 구성 

1.주어진 트레이닝 데이터세트에서 무작위로 중복을 허용해서 m개 선택 -> 부트스트랩(Bootstrap)

  • 부트스트랩으로 추출된 n개의 데이터? 부트스트랩 샘플
  • Scikit-learn이 제공하는 랜덤 포레스트 API는 부트스트랩 샘플의 크기 n의 값으로 원래 트레이닝 데이터 전체 개수와 동일한 수를 할당

2.선택한 n개의 데이터 샘플에서 데이터 특성값(아이리스 데이터의 경우, 꽃잎 너비, 꽃잎 길이 등이 데이터 특성값임)을 중복 허용없이 d개 선택

  • d값으로는 보통 주어진 트레이닝 데이터의 전체 특성의 개수의 제곱근으로 주어짐
  • 트레이닝 데이터의 전체 특성 개수를 m이라고 하면 d의 값은 다음과 같음 d=√m

3. 이를 이용하여 의사 결정 트리를 학습하고 생성한다.

4. 1~3단계를 k번 반복

5. 1~4단계를 통해 생성된 k개의 의사 결정 트리를 이용해 예측하고, 예측된 결과의 평균이나 가장 많이 등장한 예측 결과를 선택하여 최종 예측 값으로 결정

 

  • 여러 개의 의사 결정 트리로부터 나온 예측 결과들의 평균이나 다수의 예측 결과를 이용하는 방법 ? -> 앙상블(ensemble)기법
  • 다수의 예측결과를 선택하는 것은 다수결의 원칙과 비슷하다 해서 Majority Voting(다수 투표)라고 부름

 

2.랜덤포레스트란? 

  • BaggingBootstrap Aggregating의 약자 
  • K? 생성되는 의사결정트리의 개수이며, 이 값이 커지면 예측 결과의 품질을 더 좋게 해주지만 컴퓨터의 성능 문제를 좋게 해주지만 컴퓨터의 성능문제를 일으킬 수 있음. 따라서 적절한 k값을 주는게 좋음
  • 임의성(randomness)에 의해 서로 조금씩 다른 특성을 갖는 트리들로 구성
  • 각 트리들의 예측(prediction)들이 비상관화(decorrelation) 되게하며, 결과적으로 일반화(generalization) 성능을 향상
  • 임의화(randomization)포레스트가 노이즈가 포함된 데이터에 대해서도 강인하게 만들어 준다
  • 임의화는 각 트리들의 훈련 과정에서 진행 -> 배깅, 임의노드 최적화

 

3.랜덤 포레스트 하이퍼 파라미터 및 튜닝

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
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
글 보관함