Machine Learning/머신러닝

머신러닝/딥러닝 모델 저장 및 로드 방법: 빅데이터 분석의 효율성 높이기

Allen93 2024. 10. 7. 15:05
빅데이터를 머신러닝 모델로 학습할 때 발생하는 시간 문제를 해결하기 위해 학습된 모델을 저장하고 다시 로드하는 방법에 대해 공유해보려고 합니다. 이 방법을 사용하면 모델을 매번 새로 학습하지 않고, 저장된 모델을 불러와 사용할 수 있어 매우 효율적입니다.

 


1. 프로젝트 개요

빅데이터를 머신러닝 모델로 학습할 때, 일반 컴퓨터로는 매우 오랜 시간이 걸릴 수 있습니다. 매번 모델을 새로 학습하는 것은 비효율적이므로, 학습된 모델을 저장하고 이를 다시 로드하여 사용하는 방법을 알아보겠습니다.

2. 모델 저장하기

모델 학습 후, 학습된 모델을 파일로 저장할 수 있습니다. 여기서는 sklearn과 tensorflow를 사용하여 모델을 저장하는 방법을 소개합니다.

 

 

2.1. sklearn 모델 저장하기

sklearn 모델을 저장하는 데는 joblib 또는 pickle을 사용할 수 있습니다. joblib은 큰 데이터셋을 다룰 때 더 빠르고 효율적입니다.

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import joblib

# 데이터 로드 및 모델 학습
data = load_iris()
X, y = data.data, data.target
model = RandomForestClassifier()
model.fit(X, y)

# 모델 저장
joblib.dump(model, 'random_forest_model.joblib')

 

 

2.2. tensorflow 모델 저장하기

tensorflow 모델은 save 메서드를 사용하여 저장할 수 있습니다.

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 모델 생성 및 학습
model = Sequential([
    Dense(10, activation='relu', input_shape=(4,)),
    Dense(3, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(X, y, epochs=5)

# 모델 저장
model.save('tensorflow_model.h5')

 

 

3. 모델 로드하기

저장된 모델을 로드하여 사용하면, 모델을 매번 새로 학습할 필요가 없어집니다.

 

3.1. sklearn 모델 로드하기

joblib을 사용하여 저장된 sklearn 모델을 로드할 수 있습니다.

# 모델 로드
loaded_model = joblib.load('random_forest_model.joblib')

# 모델 예측
predictions = loaded_model.predict(X)
print(predictions)

 

3.2. tensorflow 모델 로드하기

tensorflow 모델은 load_model 메서드를 사용하여 로드할 수 있습니다.

# 모델 로드
loaded_model = tf.keras.models.load_model('tensorflow_model.h5')

# 모델 예측
predictions = loaded_model.predict(X)
print(predictions)

 

모델을 저장하고 로드하는 방법을 사용하면, 빅데이터를 다룰 때 발생하는 시간 문제를 효과적으로 해결할 수 있습니다. 이를 통해 데이터 분석과 모델링 작업의 효율성을 크게 높일 수 있습니다.