inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬을 활용한 머신러닝 딥러닝 입문

실습 - 앙상블 학습 (Ensemble Learning) - RandomForest & GradientBoost

훈련과 Predict를 분리할수 없나요?

91

nkhwi

작성한 질문수 8

0

AI강의중 Best였던것 같습니다.

 

강의 다 듣고 나서 한가지 궁금한게 생기는데

강의 코딩에는 모두 한 소스코드에서

훈련(fit)하고 바로 predict하는 pattern으로 소스가 제공되었습니다.

 

혹시 훈련(fit)해서 어딘가에 저장해 두었다가 해당 저장내용을 기반으로 특정 필요한 시점에 predict 해서 결과를 사용하고 싶은데 이런 방법이 있을까요?

이 방법이 설명이 간단하지 안다면 책이나 인터넷 사이트라도 추천해 주시면 감사하겠습니다.

 

 

python 머신러닝 딥러닝 pandas numpy keras tensorflow anaconda matplotlib cnn

답변 2

0

YoungJea Oh

입문 강의에서는 이해를 돕기 위해 fit() 후 곧바로 predict()를 수행하는 구조로 예제를 구성했지만,
실제 프로젝트나 실무 환경에서는 모델을 학습(fit)한 후 파일로 저장하고, 필요한 시점에 불러와 예측(predict)만 수행하는 방식이 일반적입니다.
scikit-learn의 경우,

joblib.dump(model, 'model.pkl') # 모델을 파일로 저장

model = joblib.load('model.pkl') # 저장된 모델 불러오기

y_pred = model.predict(X_test) # 예측 수행

TensorFlow (Keras)의 경우,

model.save('my_model')

model = load_model('my_model') # 저장된 모델 불러오기

y_pred = model.predict(X_test) # 예측 수행

이런 방식으로 사용하게 됩니다. 좋은 질문 감사합니다.

0

nkhwi

빠르고 상세한 답변 너무 감사합니다. 하시는 일이 잘 되시길 바랍니다.^^

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

nkhwi님이 질문해 주신 내용은 머신러닝 모델을 훈련(fit)한 뒤, 그 모델을 저장하여 나중에 필요할 때 불러와서 예측(predict)하는 방법에 관한 것입니다. 이는 매우 일반적인 요구 사항이며, 특히 실무에서 자주 사용됩니다. 기본적으로 파이썬의 머신러닝 라이브러리인 TensorFlow나 Keras, Scikit-learn에서는 모델을 저장하고 불러오는 기능을 지원하고 있습니다.

다음은 일반적인 방법입니다:

  1. 모델 저장: 모델을 저장할 때는 두 가지 방법을 사용할 수 있습니다.

    • 전체 모델 저장: model.save('model_name.h5')를 사용하면 모델의 구조, 가중치, 컴파일 정보까지 포함한 전체 모델이 저장됩니다.
    • 가중치만 저장: model.save_weights('weights_name.h5')를 사용하면 모델의 가중치만 저장할 수 있습니다. 이후 모델의 구조는 별도로 정의해야 합니다.
  2. 모델 불러오기 및 예측:

    • 저장한 모델을 불러올 때는 keras.models.load_model('model_name.h5')를 사용합니다.
    • 불러온 모델을 통해 예측을 수행할 수 있습니다. 예를 들어, loaded_model.predict(data)의 형태로 사용됩니다.

이러한 방법을 통해 훈련과 예측 과정을 분리하여 유연하게 모델을 사용할 수 있습니다. 추가적으로, Scikit-learn에서는 joblib 또는 pickle을 사용하여 모델 객체를 저장 및 로딩할 수 있습니다.

관련된 참고 자료로는 다음과 같은 것들이 있습니다:
- 케라스 공식 문서: Saving and serializing models
- Scikit-learn 공식 문서: Model persistence

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

nkhwi

상세한 예제까지 곁들인 답변에 대단히 감사드립니다. 잘 이해가 되었습니다.

Colab실습관련

0

57

2

get_dummies 관련문의

0

61

2

강의 수강

0

72

1

섹션 10 비지도 학습에 대하여

0

64

1

scikit-learn이 업데이트 된 건가요?

0

157

2

feature scaling 부분

0

121

2

MAtplotlib 기초

0

116

1

섹션9 First Autoencoder 인코더, 디코더 모델 생성 오류 해결 방법

0

194

1

섹션7 텐서플로 허브 Trained_MobileNet 모델 생성 오류 해결 방법

0

328

1

Crash 파일 위치

0

249

1

주피터에서 파일 열기

0

305

1

션 7. CNN (Convolutional Neural Network)의 7번째 강의는 실습 - FashionMNIST 데이터셋 이용 실습 문제 풀이 관련 강의 내용순서 문의

0

244

1

DBSCAN 실습 결과

0

258

1

DBSCAN 질문

0

220

1

Feature Scaling 강의 질문 있습니다!

0

248

1

heatmap에서 numeric_only=True

0

299

1

pd.Series

0

217

1

Feature Scaling

0

222

1

categorical 변수의 수치화

0

179

1

Residual Error

1

182

1

매트릭스로 만들어주는 것

1

179

1

tf.data 를 이용한 shuffling and batch 구성 관련 문의

1

362

2

타이타닉 예제에서 혼동되는 개념이있습니다!

1

274

1

LeNet-5 실습 중 loss값 nan이 나오고 있습니다.

0

653

1