최적의 파라미터 확인방법
test / valid split
valid에서 과적합 가능
k-fold Cross Validation

3개의 평균값을 Average metric
으로 overfiting방지

최종모델은 학습과 평가 데이터를 나누기 전에 전체데이터를 이용해 학습한 모델을 선택
최종 모델은 전체데이터 = 최적의 파라미터를 활용해서 최종모델 도출
def train_best_model(params):
run_name = f"{UNIQUE_PREFIX}-best-model"
with mlflow.start_run(run_name=run_name):
#
# log parameter
#
mlflow.log_params(params)
#
# load data
#
iris = load_iris(as_frame=True)
X, y = iris["data"], iris["target"]
#
# train model
#
clf = RandomForestClassifier(
n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=2024
)
clf.fit(X, y)
return clf
best모델을 사용해야 하기 때문에 데이터 split없이 바로 모든 데이터를 활용.
이전에 썻던 코드를 비슷하게 들고오고 split를 지워주면 된다.
추가로 마지막부분에
# get best_param
best_params = study.best_params
best_clf = train_best_model(best_params)
study에서 best_params를 가져와 저장 후 train_best_model함수에 best_parmas를 넣어준 후 베스트모델을 확인한다.

'Tech Stack > MLflow' 카테고리의 다른 글
| MLOps - 모델 저장 (1) | 2024.02.29 |
|---|---|
| MLOps - 데이터 (0) | 2024.02.27 |
| MLOps - HPO 반영 (0) | 2024.02.22 |
| MLOps - Optuna (0) | 2024.02.22 |
| MLOps - Hyperparameter Optimization (0) | 2024.02.22 |