본문 바로가기

Tech Stack/MLflow

MLOps - 교차검증

최적의 파라미터 확인방법

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