Multilayer Perceptron
학습 목표
복잡한 모델이 항상 유리한지, 단순한 기준 분류기와 같은 자료에서 비교합니다.
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.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.neural_network import MLPClassifier
X,y=load_iris(return_X_y=True)
Xtr,Xte,ytr,yte=train_test_split(X,y,test_size=.3,random_state=7,stratify=y)
scaler=StandardScaler().fit(Xtr);Xtr=scaler.transform(Xtr);Xte=scaler.transform(Xte)
# TODO: 같은 분할·스케일에서 두 모델을 비교하세요.
결과 기록·자가 점검
모델:
Train Accuracy:
Test Accuracy:
반복 수·경고:
확인할 점
- Scaler를 Test에 다시 fit하지 않았는가?
- 경고를 숨기고 수렴한 결과라고 단정하지 않았는가?
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_sizes=[(4,),(16,),(32,)]
결과 기록·자가 점검
Hidden 크기:
Train Accuracy:
Test Accuracy:
수렴 경고 유무:
확인할 점
- 모델별 동일한 분할·전처리를 사용했는가?
다른 입력에서도 확인하기
시작 조건
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했는가?