본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
오늘은 MLOps 구축을 위해 주로 사용되는 플랫폼들 중에서 제일 먼저 사용되는 머신러닝 모델의 개발부터 배포까지 전체 수명 주기(LifeCycle)을 관리하는 오픈소스 플랫폼인 MLFlow(02-07) 실습을 해보면서 MLflow를 활용한 전체 end-to-end 프로세스를 실습해 보았습니다.
일반적으로 먼저 데이터 전처리, 분석을 해보았을떄, 원본 데이터에는 신용 불량을 판단하는 라벨이 없는 대신, 신용의 연체 기록을 분석하여, 60일 이상 연체된 기록이 있는 고객을 나쁜 고객으로 정의한다. 라는 비즈니스 로직을 코드로 구현해 타겟 변수를 직접 만들어 적용했습니다. 그리고 고객의 인적사항과 금융 기록 두 데이터를 하나로 병합하고, 범주형 데이터를 인코딩하여 모델이 학습 가능한 형태도 데이터를 재가공 했습니다.
그리고, 신용불량자는 전체 고객중의 소수에 불과합니다. 이때, 이러한 데이터 불균형 상황에서 단순 데이터의 정확도는 의미가 없다고 판단, f1-score, auc같은 지표를 추적하여 모델로 평가했습니다. 또한 hyperopt, GridSearchCV와 같은 하이퍼파라미터 튜닝도구를 MLflow와 연동하여, 수십번의 실험한 파라미터와 결과 메트릭을 자동으로 기록하고, 제일 성능이 좋은 모델 버전을 사용했습니다.
가장 신기했던 점은 직접 데이터를 가공해서 정답을 만들었다는 점이 신기했습니다. 실제로, 연체 기간이 얼마나 길어야 신용불량자로 판단하는등의 여러 기준을 세우고, 이를 코드로 변환하여 라벨을 만들어 봄으로써 신기했습니다. ML이 도메인 지식과 관련하여 데이터로 가공하여 실제 프로덕트에 활용한수 있다는 점을 보면서 나중에 이러한 역량을 많이 키워야 겠다는 생각을 했습니다. 또한 신용 예측과 같은 실제 즈니스 판단 로직에서, 단순 정확도 보다 실제 신용불량자 고객중 모델이 맞춘 비율을 높이는 방향으로 모델을 튜닝하여야 하는 점이 비즈니스 목표, 머신러닝 메트릭을 일치시키도록 하는 매우 현실의 비즈니스 목표와 관련된 중요한 점이라는 것을 깨달았습니다.



