해결된 질문
21.07.22 15:09 작성
·
1K
0
강사님 안녕하세요? 좋은 강의 항상 감사드립니다.
코로나 시국에 상황이 쉽지 않음에도 온라인상으로 이렇게 양질의 교육을 듣고 실습하고 sharpen the saw 할 수 있음에 소소한 행복을 느끼며 강의 수강하고 있습니다. ^^
학습된 모델을 저장하는 방법에 대한 질문을 드립니다.
본 단원에서 다양한 모델들을 결합해서 우수한 모델을 만드는 것을 학습하였는데요,
sklearn 에서 지원하는 다양한 머신러닝 알고리즘 (Decision Tree, RandomForest, LinearRegression, Lasso, Ridge 등) 이나, xgboost, lightgbm 등을 통해 최선의 모델을 학습시킨 경우에, 해당 모델을 저장해서 추후에 불러와서 사용할 수 있는 기능이 있는지.. 문의드립니다. (예측하고자 할 때마다 모델 학습을 시키는 것이 아닌)
예를 들어 tensorflow 의 keras 에서는 model.save()나, model.load_model() 과 같은 메소드를 지원해서 간편하게 저장하고 불러올 수 있는데, 유사한 기능이 본 단원에서 다루어진 다양한 머신러닝 알고리즘 모듈에서도 지원이 되는지.. 궁금합니다.
또한, 해당 알고리즘을 파이썬 software 가 아닌 일반 사용자 환경에 이식하기 위해서는 어떤 방법이 가능할지.. 이러한 구현을 위해 제가 어느 부분 (라이브러리?) 공부해 보아야 할지도 자문을 구해 봅니다.
(예를 들어 학습된 모델을 생산라인의 설비에 이식을 할 때.. 실행파일 등으로 파이썬이 설치되지 않은 PC 에서 실행할 수 있도록 하는 방안 등)
감사합니다.
답변 2
1
2021. 07. 22. 20:24
안녕하십니까,
사이킷런은 모델 저장과 load를 위해 보통 joblib를 이용합니다. pickle형태로 저장하고, 로드 합니다.
from sklearn.externals import joblib
clf = XGBClassifier()
clf.fit(....)
# 아래는 xgboost_model.pkl 로 classifier 모델을 pickle로 저장합니다.
filename = 'xgboost_model.pkl'
joblib.dump(clf, filename)
# 아래는 pickle 파일을 classifier 모델로 메모리 로딩합니다.
clf = joblib.load(filename)
그리고 pickle형태로 저장하기 때문에 python이 설치되어 있어야 합니다. 언어 중립적인 포맷으로의 모델 저장은 안됩니다.
감사합니다.
0