اذهب إلى المحتوى
  • 0

حفظ ال Model "النموذج المدرب" في مكتبة Sklearn وإعادة تحميله

Meezo ML

السؤال

Recommended Posts

  • 1

يمكنك ذلك عبر الموديول:

externals.joblib

للحفظ نستخدم التابع التالي:

dump(model_name, 'path')

لإعادةالتحميل:

load('path')

مثال:

#استيراد المكتبات
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
#تحميل البيانات
data = load_breast_cancer().data
labels = load_breast_cancer().target

# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True)
c1 = LogisticRegression(multi_class='multinomial', random_state=1)
c2 = RandomForestClassifier(n_estimators=50, random_state=1)
c3 = GaussianNB()

ec1 = VotingClassifier(estimators=[ ('lr', c1), ('rf', c2), ('gnb', c3)], voting='hard')
ec1 = ec1.fit(X_train, y_train)
print(ec1.score(X_test,y_test))#0.9385964912280702
# نستدعي الكلاس 
import sklearn.externals.joblib  as savemodel
savemodel.dump(ec1 , 'model.sav')  # نستخدم التابع التالي لعملية الحفظ
# لإعادة تحميله
loading = savemodel.load('model.sav')

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك أيضاً، @Meezo ML، حفظ النموذج بعد تدريبه على البيانات بإستخدام عملية pickling والتي تحول اي Object في بايثون إلى مجموعة من الBytes المهيكلة، لاحقاً يتم تحويل هذه البيانات المخزنة في شكل Bytes إلى نموذج مرة أخرى. عملية حفظ النموذج model تتم كالتالي:

filename = 'model.sav'
pickle.dump(model, open(filename, 'wb'))

حيث ان model في البرنامج السابق يرمز للنموذج المدرب، و الدالة dump هي المسؤولة عن تحويل النموذج الى شكل بيانات قابلة للتخزين و هي تأخذ 3 قيم، الأولى النموذج المراد حفظه (أو اي Object اخر في بايثون)، ثم إسم الملف الذي تريد التخزين فيه (بالإضافة للمسار إن كنت تريد حفظه في مجلد غير المجلد الذي تطبق فيه البرنامج)، متبوعاً بطريقة الكتابة في الملف وهي في هذه الحالة wb وهي إختصار ل write binary والتي تعني فتح الملف و الكتابة فيه بBytes.

اقتباس

ملاحظة: الملف المحفوظ يحتوي على إمتداد يسمى بsav وهي من الإمتدادات المشهورة لحفظ الملفات، و هو مصمم لحفظ البيانات الإحصائية في SPSS.

لا تنسى أن تقوم بعملية تحميل مكتبة pickle في البداية كالتالي:

import pickle

و الان لنقوم بعملية تحميل النموذج مرة أخرى يمكننا ذلك بإستخدام دالة load المتوفرة في مكتبة pickle أيضاً كالتالي:

loaded_model = pickle.load(open(filename, 'rb'))

لقد قمنا بإستخدام طريقة rb لقراءة الملف المحفوظ و هي إختصار ل read bytes. بذلك يكون النموذج تم تحميله في ال Object المسمى ب loaded_model، يمكننا إستخدام loaded_model في اي عمليات تقييم أخرى قد نحتاجها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...