강의자료 · 머신러닝의 이해

Decision Tree와 Random Forest

학습 자료를 잘 맞춘 트리가 새 자료에서도 좋은지 확인해 모델 복잡도를 선택합니다.

실습 전에

01 깊은 트리는 항상 더 좋은 모델일까요?

설명

학습 자료의 세부 패턴을 따라가 새 자료에서 오류가 커질 수 있습니다.

02 트리 여러 개의 결과를 모으면 무엇을 비교해야 할까요?

설명

같은 split과 지표에서 개별 트리와 Ensemble의 예측·오류를 비교합니다.

실습

실습용 노트북 미리보기실습용 노트북 다운로드

1. 트리 깊이와 일반화

시작 조건

Iris 데이터를 test_size=.3, random_state=7, stratify=y로 나눕니다. 깊이는 1,3,None입니다.

진행 방법

  1. 같은 데이터 분할에서 세 DecisionTreeClassifier를 학습하세요.
  2. Train·Test Accuracy와 Leaf 수를 기록하고 한 Test 표본의 결정 경로를 읽으세요.

남길 결과

기록 항목과 확인할 점
max_depth
Leaf 수
Train Accuracy
Test Accuracy

확인할 점

  • Test 자료로 깊이를 계속 조정하지 않았는가?

2. Random Forest와 비교

시작 조건

같은 분할에서 n_estimators=50, max_depth=3인 RandomForest와 비교합니다.

진행 방법

  1. 앞의 Train/Test 분할을 그대로 쓰고 RandomForestClassifier(n_estimators=50,max_depth=3,random_state=7)를 학습하세요.
  2. 앞에서 구한 깊이 3인 Decision Tree와 Random Forest의 Train·Test Accuracy를 같은 표에 적으세요.
  3. Test 표본 하나를 두 모델에 공통으로 넣고 정답·각 예측을 적으세요. 한 Tree와 여러 Tree의 결과를 결합하는 방식의 차이를 설명하세요.

남길 결과

기록 항목과 확인할 점
모델·설정
Train Accuracy
Test Accuracy
선택한 Test Index·정답·예측

확인할 점

  • 두 모델을 같은 Train/Test 자료로 비교했는가?

3. 다른 입력에서도 확인하기

시작 조건

split seed=11로 한 번 더 나누어 모델 우열이 유지되는지 확인합니다.

진행 방법

  1. test_size=.3, stratify=y를 유지하고 분할의 random_state만 11로 바꾸세요.
  2. 앞 활동의 깊이 3인 Tree와 50개 Tree의 Forest를 새 Train에 다시 학습하세요. 모델의 나머지 설정은 유지합니다.
  3. split seed·모델명·Train Accuracy·Test Accuracy를 표로 적고 seed 7과 11에서 Test Accuracy의 대소관계가 유지되는지 설명하세요.

남길 결과

기록 항목과 확인할 점
분할 Seed
모델
Train·Test Accuracy
두 모델 비교 결과

확인할 점

  • 자료 분할 Seed만 바꾸고 모델 설정은 유지했는가?