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

Multilayer Perceptron

학습 목표

복잡한 모델이 항상 유리한지, 단순한 기준 분류기와 같은 자료에서 비교합니다.

MLP와 기준 모델

시작 조건

Iris를 위와 같은 70/30 분할로 나누고 Train에서만 StandardScaler를 fit합니다.

진행 방법

  1. LogisticRegression(max_iter=500)과 MLPClassifier(hidden_layer_sizes=(16,),max_iter=300,random_state=7)를 비교하세요.
  2. Train·Test Accuracy와 수렴 경고 여부를 기록하세요.

남길 결과

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:

반복 수·경고:

확인할 점

Network 크기 비교

시작 조건

MLP의 hidden_layer_sizes만 (4,),(16,),(32,)로 바꾸고 같은 지표로 비교합니다.

진행 방법

  1. 앞의 Train/Test 분할과 Train에 fit한 Scaler를 재사용하세요. MLP의 hidden_layer_sizes만 (4,), (16,), (32,)로 바꿔 학습하세요.
  2. max_iter=300, random_state=7과 나머지 설정을 유지하고 Hidden 크기·Train Accuracy·Test Accuracy·수렴 경고 유무를 표로 적으세요.
  3. Hidden 크기가 커질 때 Train과 Test Accuracy가 각각 어떻게 변하는지, 경고 유무와 나누어 설명하세요.

남길 결과

hidden_sizes=[(4,),(16,),(32,)]

결과 기록·자가 점검

Hidden 크기:

Train Accuracy:

Test Accuracy:

수렴 경고 유무:

확인할 점

다른 입력에서도 확인하기

시작 조건

split seed=11에서 같은 두 모델을 비교하고 작은 데이터의 변동을 확인합니다.

진행 방법

  1. 분할 Seed만 11로 바꾸고 새 Train에서 Scaler를 다시 fit한 뒤 Train·Test를 변환하세요.
  2. 활동 1의 Logistic Regression과 Hidden (16,) MLP를 같은 설정으로 새 Train에 다시 학습하세요.
  3. split seed·모델명·Train Accuracy·Test Accuracy를 표로 기록하고 seed 7에서의 두 모델 비교와 대조하세요. Test 표본의 구성 변경이 비교 결과에 미친 영향을 설명하세요.

남길 결과

# 앞 활동의 데이터와 함수를 사용해 지정된 새 예제를 검사하세요.

결과 기록·자가 점검

분할 Seed:

모델·설정:

Train·Test Accuracy:

분할 변경에 따른 비교:

확인할 점