Joblib
joblib은 학습을 진행한 Machine learning model을 저장하고 다시 불러와 사용할 수 있도록 하는 모듈입니다.
자체적으로 모델을 저장하는 기능이 없는 Sklearn model들을 이용할 때 joblib package를 사용하게 됩니다.
Joblib module install
# pip install
pip install joblib
# conda install
conda install anaconda::joblib
Save trained model using joblib
# package load
import joblib
#### [Random Forest Classifier] ####
# Target values [CTL level (TRUE = high, FALSE = low)]
def RFC(x_train, x_test, y_train_ctl, y_test_ctl, data_folder):
# model load (best parameter set)
CTL_best_model = RandomForestClassifier(n_estimators = 250, criterion ='entropy', max_features = None, n_jobs=-1)
# Train model
CTL_best_model.fit(x_train, y_train_ctl.values.ravel())
# Predict
CTL_best_model_pred = CTL_best_model.predict(x_test)
# Score
CTL_F1_test = f1_score(y_test_ctl, CTL_best_model_pred)
CTL_balanced_AUC_test = balanced_accuracy_score(y_test_ctl, CTL_best_model_pred)
print("## CTL Classification Prediction ##")
print("CTL_F1_Score:", CTL_F1_test)
print("CTL_Balanced_Accuracy:", CTL_balanced_AUC_test)
print("-------------------------------------")
print(" ")
# Trained model save
joblib.dump(CTL_best_model, os.path.join(data_folder,"All_CTL_model.pkl"))
return CTL_best_model, CTL_best_model_pred
All_RFC = RFC(x_train, x_test, y_train_ctl, y_test_ctl, data_folder)
CTL_best_model = All_RFC[0]
CTL_best_model_pred = All_RFC[1]
Load trained model using joblib
# Package load
import joblib
import os
# Pre-trained model load
CTL_model = joblib.load(os.path.join(data_folder,"All_CTL_model.pkl"))
# Prediction
CTL_val_pred = CTL_model.predict(x_val)
# Score
F1_CTL_val = f1_score(y_val_ctl, CTL_val_pred)
joblib module에 dump와 load 함수를 사용하면 model을 직관적으로 저장하고 불러올 수 있다.