وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش ذخیره و بارگذاری مدل Scikit-Learn

0 22

سرفصلهای مطلب

زمان لازم برای مطالعه: < 1 دقیقه


ذخیره و بارگذاری مدل‌های Scikit-Learn بخشی از چرخه عمر بیشتر مدل‌ها است – معمولاً، شما آن‌ها را در یک زمان اجرا آموزش می‌دهید و در زمان دیگری ارائه می‌کنید.

در این بایت – شما یاد خواهید گرفت که چگونه با استفاده از Scikit-Learn یک رگرسیور را ذخیره و بارگذاری کنید. ابتدا بیایید یک رگرسیور ساده بسازیم و آن را برازش کنیم:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn import ensemble

X, y = datasets.fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)

scaler = MinMaxScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

model = ensemble.RandomForestRegressor().fit(X_train_scaled, y_train)

با مدل مناسب – بیایید جلو برویم و آن را ذخیره کنیم.

توجه داشته باشید: داده ها برای یادگیری مدل مقیاس بندی می شوند. می‌خواهید وضعیت این مقیاس‌کننده را نیز ذخیره کنید، و زمانی که از مدل برای استنتاج استفاده می‌شود، آن را برای پردازش داده‌ها بارگذاری کنید. برای کسب اطلاعات بیشتر در مورد ذخیره مقیاس ها – بخوانید “روش ذخیره و بارگیری مقیاس‌کننده‌های Scikit-Learn Fit”!

ترشی

pickle یک بسته سریال سازی عموماً محبوب و پرکاربرد است که می تواند به راحتی مدل های Scikit-Learn را ذخیره و بازیابی کند:

import pickle

print('Model score:', model.score(X_test_scaled, y_test))
pickle.dump(model, open('rfr_model.sav', 'wb'))
                                            
loaded_model = pickle.load(open('rfr_model.sav', 'rb'))                 
print('Loaded model score:', loaded_model.score(X_test_scaled, y_test))

این منجر به:

Model score: 0.7974923279678516
Loaded model score: 0.7974923279678516

Joblib

به طور کلی – joblib با آرایه‌های بزرگ‌تر سریع‌تر است، با این حال، برای بارگذاری و ذخیره مدل‌ها، تفاوت عملی ندارد:

import joblib

print('Model score:', model.score(X_test_scaled, y_test))
joblib.dump(model, 'rfr_model.sav')
 
loaded_model = joblib.load('rfr_model.sav')
print('Loaded model score:', loaded_model.score(X_test_scaled, y_test))

این منجر به:

Model score: 0.7974923279678516
Loaded model score: 0.7974923279678516

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-05 20:40:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید