AIVLE School DX 3기
[에이블스쿨 7주차] 머신러닝6
김보통김보름
2023. 3. 13. 12:01
728x90
반응형
하이퍼 파라미터(Hyper parameter)
알고리즘을 사용하여 모델링할 때 최적화하기 위해 조절할 수 있는 옵션
(지식과 경험 + 다양한 시도)
1) KNN
- k값에 따라 성능이 달라짐
- 거리 계산법(metric)에 따라 성능이 달라짐
2) Decision Tree
- max_depth : 트리의 최대 깊이 제한
- min_samples_leaf : leaf가 되기 위한 최소한의 샘플 데이터 수
- min_samples_split : 노드를 분할하기 위한 최소한의 샘플 데이터 수
🤔 그럼 모든 파라미터를 다 찾아보는 게 좋은가요?
모릅니다!
파라미터를 일부분만 찾아보면(RandomSearch)
→ 시간 절약 but❗ 최적의 값인지는 모름
파라미터 전부를 찾아보면(Grid Search)
→ 최적의 파라미터 값 찾을 수 있음 but❗ 시간이 너~어~무 오래 걸림
Random Search 실습
# 파라미터 선언
# max_depth: 1~50
param = {'max_depth' : range(1, 51)}
# Random Search 선언
# cv=5
# n_iter=20
# scoring='r2'
model = RandomizedSearchCV(model_dt, #기본 모델 이름
param, # 매개변수 범위를 가지고 있는 딕셔너리 변수
cv=5, # K-Fold CV 분할 개수
n_iter=20, # 임의로 선택할 매개변수 값
scoring='r2' # 사용할 평가지표(default는 없음)
)
# 학습하기
model.fit(x_train, y_train)
# 수행 정보
model.cv_results_
# 최적 파라미터
model.best_params_
# 최고 성능
model.best_score
⭐CV용도
- 성능예측(일반적인, 객관적)
- 최적 파라미터 값 설정
결과확인
# mean_test_score 확인
model.cv_results_
최적 파라미터
model.best_params_
최고 성능
model.best_score_
728x90