하이퍼파라미터 튜닝 소개

Python에서의 모델 검증

Kasey Jones

Data Scientist

모델 파라미터

파라미터란:

  • 데이터에서 학습되거나 추정됨
  • 모델 학습의 결과
  • 향후 예측에 사용
  • 수동으로 설정하지 않음
Python에서의 모델 검증

선형회귀 파라미터

파라미터는 모델을 학습해야 생성됩니다:

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
Python에서의 모델 검증

선형회귀 파라미터

모델을 학습하기 전에는 파라미터가 없습니다:

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
Python에서의 모델 검증

모델 하이퍼파라미터

하이퍼파라미터:

  • 학습 이전에 수동 설정
  • 학습 방법을 규정
Python에서의 모델 검증

랜덤 포레스트 하이퍼파라미터

하이퍼파라미터 설명 가능한 값(기본값)
n_estimators 포레스트의 결정트리 개수 2+ (10)
max_depth 결정트리의 최대 깊이 2+ (None)
max_features 분할 시 고려할 특성 수 문서 보기
min_samples_split 분할에 필요한 최소 샘플 수 2+ (2)
Python에서의 모델 검증

하이퍼파라미터 튜닝이란?

하이퍼파라미터 튜닝:

  • 하이퍼파라미터 선택
  • 동일 모델을 여러 값 조합으로 실행
  • 후보 값 범위 정의
  • 단일 정확도 지표 지정
Python에서의 모델 검증

범위 지정

depth = [4, 6, 8, 10, 12]
samples = [2, 4, 6, 8]
features = [2, 4, 6, 8, 10]

# Specify hyperparameters rfc = RandomForestRegressor( n_estimators=100, max_depth=depth[0], min_samples_split=samples[3], max_features=features[1])
rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse'
 ...
}
Python에서의 모델 검증

하이퍼파라미터가 너무 많아요!

rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse',
 'max_depth': 4,
 'max_features': 4,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 8,
 ...
 }
Python에서의 모델 검증

일반 가이드라인

  • 기본부터 시작
  • 문서 읽기
  • 실용적 범위 시험
Python에서의 모델 검증

연습해 봅시다!

Python에서의 모델 검증

Preparing Video For Download...