머신러닝(+딥러닝)

sklearn 으로 학습한 모델을 파일로 저장하기

wefree 2023. 8. 8. 15:15

sklearn 등을 통해 만든 모델을 파일로 저장해, 서비스에서 활용할 수 있어야 한다.

https://medium.com/analytics-vidhya/save-and-load-your-scikit-learn-models-in-a-minute-21c91a961e9b 에서 세가지 방법을 소개하고 있다.

 

  1. python pickle 사용
  2. sklearn.utils 의 joblib 사용
  3. 모델의 coef_ 와 intercept_  를 json 으로 저장

 

pickle 이나 joblib 을 사용하면, python 에 의존성(파이썬 버전 등)이 발생하는 단점이 있다.

json 으로 저장하면, 다른 언어(예: java) 로 서비스를 구현할 수 있지만 모델에 대한 이해가 필요하다는 단점이 있다.

 

 

sklearn.utils 의 joblib 을 사용한 예제

from sklearn.utils import _joblib
# from sklearn.externals import joblib


lr: LogisticRegression = LogisticRegression(C=20, max_iter=1000)
lr.fit(...)

joblib_file = "joblib_model.pkl"
_joblib.dump(lr, joblib_file)

model: LogisticRegression = _joblib.load(joblib_file)
model.predict(...)