Decision Tree와 Random Forest
학습 자료를 잘 맞춘 트리가 새 자료에서도 좋은지 확인해 모델 복잡도를 선택합니다.
실습 전에
01 깊은 트리는 항상 더 좋은 모델일까요?
설명
학습 자료의 세부 패턴을 따라가 새 자료에서 오류가 커질 수 있습니다.
02 트리 여러 개의 결과를 모으면 무엇을 비교해야 할까요?
설명
같은 split과 지표에서 개별 트리와 Ensemble의 예측·오류를 비교합니다.
1. 트리 깊이와 일반화
시작 조건
Iris 데이터를 test_size=.3, random_state=7, stratify=y로 나눕니다. 깊이는 1,3,None입니다.
진행 방법
- 같은 데이터 분할에서 세 DecisionTreeClassifier를 학습하세요.
- Train·Test Accuracy와 Leaf 수를 기록하고 한 Test 표본의 결정 경로를 읽으세요.
남길 결과
기록 항목과 확인할 점
- max_depth
-
- Leaf 수
-
- Train Accuracy
-
- Test Accuracy
-
확인할 점
- Test 자료로 깊이를 계속 조정하지 않았는가?
2. Random Forest와 비교
시작 조건
같은 분할에서 n_estimators=50, max_depth=3인 RandomForest와 비교합니다.
진행 방법
- 앞의 Train/Test 분할을 그대로 쓰고
RandomForestClassifier(n_estimators=50,max_depth=3,random_state=7)를 학습하세요. - 앞에서 구한 깊이 3인 Decision Tree와 Random Forest의 Train·Test Accuracy를 같은 표에 적으세요.
- Test 표본 하나를 두 모델에 공통으로 넣고 정답·각 예측을 적으세요. 한 Tree와 여러 Tree의 결과를 결합하는 방식의 차이를 설명하세요.
남길 결과
- 같은 분할의 Tree·Forest 비교 표와 공통 Test 표본의 예측.
기록 항목과 확인할 점
- 모델·설정
-
- Train Accuracy
-
- Test Accuracy
-
- 선택한 Test Index·정답·예측
-
확인할 점
- 두 모델을 같은 Train/Test 자료로 비교했는가?
3. 다른 입력에서도 확인하기
시작 조건
split seed=11로 한 번 더 나누어 모델 우열이 유지되는지 확인합니다.
진행 방법
test_size=.3, stratify=y를 유지하고 분할의 random_state만 11로 바꾸세요.- 앞 활동의 깊이 3인 Tree와 50개 Tree의 Forest를 새 Train에 다시 학습하세요. 모델의 나머지 설정은 유지합니다.
- split seed·모델명·Train Accuracy·Test Accuracy를 표로 적고 seed 7과 11에서 Test Accuracy의 대소관계가 유지되는지 설명하세요.
남길 결과
- 분할 Seed·모델별 Accuracy 표와 비교 결과의 변화.
기록 항목과 확인할 점
- 분할 Seed
-
- 모델
-
- Train·Test Accuracy
-
- 두 모델 비교 결과
-
확인할 점
- 자료 분할 Seed만 바꾸고 모델 설정은 유지했는가?