inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

혹시 사이킷런에서 이런게 될까요?

651

헤이나우

작성한 질문수 26

0

크게 두가지의 질문이 있습니다.

1. 서비스화 질문

2. 학습한 데이터 저장/로드 질문

3. 추가 학습에 대한 질문

1. 사이킷런을 서비스화를 한다고 하였을 때 파이썬 모듈로  서비스로 올려서 학습까지 진행한뒤에 웹서비스같은 걸 띄워서 피쳐들을 파라미터를 받는 형식으로 해서 예측 결과를 리턴하도록 서비스를 구성해야 하나요? 일반 현업이나 많이 쓰이는 방법이 궁금해서 질문 드립니다.

2. 만약 서비스를 하다가 서비스를 재실행해야 되는 문제나 여러가지 문제가 생길경우 학습한 데이터를 서비스를 올릴때 다시 학습을 진행해야 하나요? 아니면 학습한 메모리 데이터를 따로 저장하는 기능이 있어 다시 실행할 때 다시 로드 후 바로 서비스화 할 수 있나요?

3. 현재 학습한 학습기에다가 추가로 어떠한 데이터들을 추가적으로 학습을 시키고 싶을경우 이 피쳐들을 다시 이전 피쳐들과 합쳐서 다시 학습을 시키는 방법밖에 없을까요? 예를 들어 이전 학습기는 어제까지 데이터를 학습해서 서비스를 하고 하루뒤에 오늘 데이터를 추가해서 학습해야 하는 상황에서 좋은 방법이 있을까요?

이런 기술들이 현업에서 사용될 니즈가 있는 기술인데 생각하다 궁급해서 질문 남김니다!! 

머신러닝 배워볼래요? python 통계

답변 1

1

권 철민

안녕하십니까, 

1. 보통은 백엔드에서 학습을 한 뒤 이것을 Serialize 하여 파일로 저장합니다. 그리고 이 파일을 서비스 단에 올린 뒤 메모리에 load하여 서비스 합니다. serialization와 메모리 load는 보통 python의 pickle 객체를 활용하는 데 이를 위해 sklearn은 joblib를 지원합니다. 

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)

clf.predict(....)

서비스 단에서는 최초에 pickle 파일을 학습된 classifier 를 메모리로 로드 한 뒤에 predict() 메소드를 호출합니다. 이 predict()메소드의 인자로 피처들을 파라미터로 받은 뒤 predict() 결과를 반환하는 형식으로 서비스 합니다. 

2. 보통은 backend나 서비스 단에 학습 모델을 pickle 파일 형태로 저장하기 때문에 문제가 생기는 경우 서버를 내리거나 관련 프로세스를 죽이고 다시 파일을 로드하면 됩니다.  

3.  추가되는 데이터가 feature를 추가하는 것이면 재학습 시켜야 합니다.  추가되는 데이터가 row 일 경우에는 incremental learning이 가능할 것 같습니다만, 저 역시 incremental learning 경험은 없습니다.  보통은 incremental learning 보다는 저녁에 batch로 재 학습을 시키는 방법을 사용하고 있습니다.  incremental learning에 대한 자료는 아래를 참조 부탁드립니다.

https://scikit-learn.org/0.15/modules/scaling_strategies.html

좋은 질문 감사합니다.

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

73

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

79

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

108

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

190

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2

float64 null 값 처리 방법

0

103

2