머신러닝 모델을 개발할 때 하이퍼파라미터 튜닝과 실험 결과를 효율적으로 관리하는 것이 중요합니다. 이번 포스트에서는 GridSearchCV를 활용하여 랜덤 포레스트(RandomForestClassifier)의 하이퍼파라미터를 최적화하고, MLflow를 통해 실험을 기록하고 분석하는 방법을 설명하겠습니다. 아래 코드에서는 MLflow의 autologging 기능을 활용하여 각 실험(run)의 모델, 하이퍼파라미터, 평가 지표(precision, recall, f1-score, accuracy)를 자동으로 기록합니다.
mlflow.sklearn.autolog()
'''
To do
run GridSearchCV with mlflow
'''
with mlflow.start_run():
model_grid = GridSearchCV(RandomForestClassifier(), {"n_estimators":[100,200], "max_depth":[20,25]})
model_grid.fit(X_train, y_train)
y_pred = model_grid.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
prf = precision_recall_fscore_support(y_test, y_pred, average="binary")
mlflow.log_metric("precision_on_test", prf[0])
mlflow.log_metric("recall_on_test", prf[1])
mlflow.log_metric("f1score_on_test", prf[2])
mlflow.log_metric("accuracy_on_test", accuracy)
위 코드를 실행한 후, MLflow UI를 열면 다음과 같은 화면을 볼 수 있습니다.
UI 설명
- 왼쪽 Experiments 패널에서 hellomlflow!! 실험을 확인할 수 있습니다.
- 여러 개의 Run Name이 자동 생성되었으며, 각각의 실행(run)마다 하이퍼파라미터와 평가 지표가 기록되었습니다.
- metrics.rmse < 1 and params.model = "tree" 와 같은 필터를 사용하여 특정 조건의 실험을 검색할 수도 있습니다.
- Show more columns (53 total)을 클릭하면 더 많은 매개변수를 확인할 수 있습니다.
MLflow의 UI를 활용하면 다음과 같은 작업을 쉽게 할 수 있습니다.
- 하이퍼파라미터 조합별 성능 비교
- 여러 번의 실험 결과를 저장하고 재현 가능하게 관리
- 최적 모델 선택 후 배포 가능
'시스템 개발 및 관리 > MLflow를 활용한 머신러닝 실험 관리' 카테고리의 다른 글
MLflow Compare 기능으로 빠르게 모델 비교하기 (0) | 2025.02.02 |
---|---|
MLflow로 모델 성능 비교하고 최적 모델 찾기 (0) | 2025.02.01 |
MLflow Autolog 확장하기: Custom Logging으로 세부 실험 데이터 관리 (0) | 2025.01.30 |
MLflow로 랜덤포레스트 분류 모델 실험 자동화하기 (1) | 2025.01.29 |
머신러닝 실험 추적을 위한 MLflow 환경 구축 (0) | 2025.01.28 |