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을 직관적으로 저장하고 불러올 수 있다.