Multilayer Perceptron
복잡한 모델이 항상 유리한지, 단순한 기준 분류기와 같은 자료에서 비교합니다.
실습 전에
01 MLP의 크기를 늘리면 무엇이 함께 바뀔까요?
설명
표현 능력과 학습할 Parameter 수가 늘어 단순 기준 모델과의 비교가 필요합니다.
02 전처리를 전체 자료에서 fit하면 왜 문제가 될까요?
설명
평가 자료의 정보가 학습 전처리에 들어가 새 자료에 대한 평가가 왜곡될 수 있습니다.
1. MLP와 기준 모델
시작 조건
Iris를 위와 같은 70/30 분할로 나누고 Train에서만 StandardScaler를 fit합니다.
진행 방법
- LogisticRegression(max_iter=500)과 MLPClassifier(hidden_layer_sizes=(16,),max_iter=300,
random_state=7)를 비교하세요. - Train·Test Accuracy와 수렴 경고 여부를 기록하세요.
남길 결과
- 두 모델 표와 Test Confusion Matrix.
기록 항목과 확인할 점
- 모델
-
- Train Accuracy
-
- Test Accuracy
-
- 반복 수·경고
-
확인할 점
- Scaler를 Test에 다시 fit하지 않았는가?
- 경고를 숨기고 수렴한 결과라고 단정하지 않았는가?
2. Network 크기 비교
시작 조건
MLP의 hidden_layer_sizes만 (4,),(16,),(32,)로 바꾸고 같은 지표로 비교합니다.
진행 방법
- 앞의 Train/Test 분할과 Train에 fit한 Scaler를 재사용하세요. MLP의
hidden_layer_sizes만 (4,), (16,), (32,)로 바꿔 학습하세요. max_iter=300, random_state=7과 나머지 설정을 유지하고 Hidden 크기·Train Accuracy·Test Accuracy·수렴 경고 유무를 표로 적으세요.- Hidden 크기가 커질 때 Train과 Test Accuracy가 각각 어떻게 변하는지, 경고 유무와 나누어 설명하세요.
남길 결과
- Hidden 크기별 Accuracy·수렴 경고 비교 표.
기록 항목과 확인할 점
- Hidden 크기
-
- Train Accuracy
-
- Test Accuracy
-
- 수렴 경고 유무
-
확인할 점
3. 다른 입력에서도 확인하기
시작 조건
split seed=11에서 같은 두 모델을 비교하고 작은 데이터의 변동을 확인합니다.
진행 방법
- 분할 Seed만 11로 바꾸고 새 Train에서 Scaler를 다시 fit한 뒤 Train·Test를 변환하세요.
- 활동 1의 Logistic Regression과 Hidden
(16,) MLP를 같은 설정으로 새 Train에 다시 학습하세요. - split seed·모델명·Train Accuracy·Test Accuracy를 표로 기록하고 seed 7에서의 두 모델 비교와 대조하세요. Test 표본의 구성 변경이 비교 결과에 미친 영향을 설명하세요.
남길 결과
- 같은 분할별 두 모델의 Accuracy 표와 비교 결과의 변화.
기록 항목과 확인할 점
- 분할 Seed
-
- 모델·설정
-
- Train·Test Accuracy
-
- 분할 변경에 따른 비교
-
확인할 점
- 새 Train에서만 Scaler를 다시 fit했는가?