[ Optuna ]
Optuna: A hyperparameter optimization framework — Optuna 3.6.1 documentation
© Copyright 2018, Optuna Contributors. Revision 39f83f7e.
optuna.readthedocs.io
✅ 하이퍼파라미터 최적화를 위한 파이썬 라이브러리로, 모델의 성능을 향상시키는데 필요한 최적의 하이퍼파라미터를 자동으로 탐색.
→ 베이지안 최적화 알고지름 기반
*베이지안 : 과거의 데이터를 바탕으로 추
→ 목적함수의 값을 최소화하거나, 최대화하는 데 사용됨
- 특징
- 하이퍼파라미터 최적화: 주어진 목적 함수의 값을 최소화하거나 최대화하기 위한 최적의 하이퍼파라미터를 찾습니다.
- 자동화된 하이퍼파라미터 탐색: Optuna는 사용자가 지정한 하이퍼파라미터 공간에서 효율적으로 탐색을 수행합니다.
- 다양한 최적화 알고리즘: 베이지안 최적화를 비롯하여 여러 가지 최적화 알고리즘을 지원합니다.
- 분산 처리 지원: 분산 환경에서 여러 대의 컴퓨터를 사용하여 탐색을 병렬화할 수 있습니다.
- 최적화 절차
- 하이퍼파라미터 공간 정의: 최적화할 하이퍼파라미터의 범위를 정의합니다. 예를 들어, 학습률, 은닉층의 수, 은닉층의 뉴런 수 등을 지정합니다.
- 목적 함수 정의: 최소화하거나 최대화하려는 목적 함수를 정의합니다. 이 함수는 주어진 하이퍼파라미터에 대해 모델을 훈련하고 검증하는 데 사용됩니다. 목적 함수의 반환값은 모델의 성능 지표로, 일반적으로 검증 세트의 정확도나 손실 함숫값입니다.
- 하이퍼파라미터 최적화 실행: Optuna를 사용하여 목적 함수의 값을 최소화하는 최적의 하이퍼파라미터를 탐색합니다. 이 과정은 주어진 하이퍼파라미터 공간에서 반복적으로 모델을 학습하고 평가하여 진행됩니다.
- 최적의 하이퍼파라미터 검증: 최적의 하이퍼파라미터를 사용하여 모델을 최종적으로 검증하고 평가합니다.
> 예시 코드
!pip install optuna
import optuna
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
# 목적 함수 정의
def objective(trial):
# 하이퍼파라미터 범위 지정
n_neighbors = trial.suggest_int('n_neighbors', 1, 10)
# KNN 모델 생성
knn = KNeighborsClassifier(n_neighbors=n_neighbors)
# 교차 검증 수행하여 정확도 반환
score = cross_val_score(knn, X_train, y_train, cv=5).mean()
return score
# 최적화 실행
study = optuna.create_study(direction='maximize') # 최대화 문제로 설정
study.optimize(objective, n_trials=100) # 100번의 시도 동안 최적화 수행
# 최적의 하이퍼파라미터 출력
print("Best Hyperparameters:", study.best_params)
print("Best Score:", study.best_value)
> cross_val 관련 내용
[ASAC] 06-1. ML - Cross Validation, Grid Search
[ cross validation ]✅ 모델의 성능을 평가하기 위한 효과적인 방법 중 하나로, 모델의 성능을 정확하게 추정하기 위해 사용.다음과 같은 종류들이 있다.k-fold cross validationleave-one-out cross validationstratif
seheehee.tistory.com
'대외활동 > [부트캠프] 빅데이터 분석가 과정' 카테고리의 다른 글
[회고] ML 프로젝트 회고 (0) | 2024.06.29 |
---|---|
[ML] 06-1. ML - Cross Validation, Grid Search (0) | 2024.05.09 |
[Tableau] 05-4. 태블로 기능 3(지도, 대시보드 만들기, 계산된 필드) (0) | 2024.04.19 |
[Tableau] 05-3. 태블로 기능 2(수식 계산, 파이차트와 도넛차트) (0) | 2024.04.17 |
[Tableau] 05-2. 태블로 기능(그룹, 색상필터, 레이블필터, 화면비율 조정) (0) | 2024.04.17 |