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

السؤال

Recommended Posts

  • 0
نشر

ذلك أسلوب مُنظم لضبط المعاملات الفائقة Hyperparameters في نماذج التعلم الآلي للعثور على أفضل مجموعة من المعاملات الفائقة التي تُحسّن أداء النموذج كالدقة، السرعة وغيرهم

بمعنى تُحدد المعاملات الفائقة التي تريد ضبطها كمُعدل التعلم learning rate وعدد الأشجار في Random Forest والمعاملات الأخرى، وتُحدد القيم المُحتملة لكل معامل كالتالي learning_rate = [0.01, 0.1, 1].

ويُنشئ Grid Search جميع التركيبات الممكنة من القيم المُحددة، أي لو لديك معاملين عدد الأشجار = [50, 100] والعمق الأقصى = [3, 5]، فالشبكة ستكون (50,3), (50,5), (100,3), (100,5).

ولكل تركيبة، يُدرّب النموذج ويُقيّم أداؤه باستخدام تقنية مثل k-fold cross-validation، وتُختار التركيبة التي تعطي أفضل أداء بناءًا على مقياس مثل الدقة أو الـF1-score.

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()

param_grid = {
    'n_estimators': [50, 100, 200],
    'max_depth': [None, 10, 20],
    'min_samples_split': [2, 5]
}

grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

print(grid_search.best_params_)

لكن ذلك غير فعّال في حال بعض المعاملات غير مؤثرة.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

إن ال GridSearch هو أسلوب في تعلم الآلة يتم إستخدامه للبحث عن أفضل مجموعة من المعاملات (hyperparameters) لنموذج معين.

فبدلا من تجربة القيم يدويا يقوم GridSearch بالبحث بشكل تلقائي عن جميع التركيبات الممكنة للمعاملات من خلال تحديد نطاقات متعددة لكل معلمة.

حيث  يتم تحديد مجموعة من القيم الممكنة لكل هايبربارامتر. وم ثم إنشاء شبكة من التركيبات الممكنة للهايبربارامترات المحددة. وبعد ذلك يتم تدريب النموذج لكل تركيبة من التركيبات وتقييم أدائه باستخدام تقييم معين (مثل دقة التصنيف أو خطأ التوقع). وأخيرا يتم اختيار التركيبة التي تعطي أفضل أداء للنموذج.

تلخيصا لما سبق فإن بحث مصفوفة المعاملات GridSearch يستخدم لاختبار عدد من المعاملات أو إعدادات النماذج المختلفة دفعة واحدة والعثور على أفضل مجموعة معاملات تحقق أفضل أداء . ولكن تستهلك هذه الطريقة وقتا وموارد حاسوبية كبيرة خاصة إذا كانت المعاملات كثيرة جدا

  • 0
نشر
بتاريخ 7 دقائق مضت قال Mustafa Suleiman:

ذلك أسلوب مُنظم لضبط المعاملات الفائقة Hyperparameters في نماذج التعلم الآلي للعثور على أفضل مجموعة من المعاملات الفائقة التي تُحسّن أداء النموذج كالدقة، السرعة وغيرهم

بمعنى تُحدد المعاملات الفائقة التي تريد ضبطها كمُعدل التعلم learning rate وعدد الأشجار في Random Forest والمعاملات الأخرى، وتُحدد القيم المُحتملة لكل معامل كالتالي learning_rate = [0.01, 0.1, 1].

ويُنشئ Grid Search جميع التركيبات الممكنة من القيم المُحددة، أي لو لديك معاملين عدد الأشجار = [50, 100] والعمق الأقصى = [3, 5]، فالشبكة ستكون (50,3), (50,5), (100,3), (100,5).

ولكل تركيبة، يُدرّب النموذج ويُقيّم أداؤه باستخدام تقنية مثل k-fold cross-validation، وتُختار التركيبة التي تعطي أفضل أداء بناءًا على مقياس مثل الدقة أو الـF1-score.

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()

param_grid = {
    'n_estimators': [50, 100, 200],
    'max_depth': [None, 10, 20],
    'min_samples_split': [2, 5]
}

grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

print(grid_search.best_params_)

لكن ذلك غير فعّال في حال بعض المعاملات غير مؤثرة.

طيب اقدر استخدم الGridsearchCV مع التعلم العميق بستخدم Keras & TensorFlow ؟

واي اجرب اي عديد من القيمه صح مش شرط 3 قيمه بس او 4 ؟

  • 0
نشر
بتاريخ 1 ساعة قال Ali Ahmed55:

طيب اقدر استخدم الGridsearchCV مع التعلم العميق بستخدم Keras & TensorFlow ؟

واي اجرب اي عديد من القيمه صح مش شرط 3 قيمه بس او 4 ؟

 

لا مشكلة، لكن مع بعض الخطوات الإضافية المطلوبة لجعل النموذج متوافقًا مع واجهة scikit-learn، حيث توفر Keras واجهة جاهزة KerasClassifier أو KerasRegressor لدمج النماذج مع أدوات scikit-learn مثل GridSearchCV.

وتستطيع تحديد أي عدد من القيم لكل معامل فائق ليس فقط 3 أو 4،  لكن تذكر أن زيادة عدد القيم يزيد الوقت الحسابي بشكل كبير، واستخدم GridSearchCV كما تفعل مع أي نموذج في scikit-learn.

  • 0
نشر
بتاريخ 18 ساعة قال Ali Ahmed55:

الف شكراا جدا لحضرتكم 

جزاك الله كل خير

سوال لو سمحت 

بس اي الكود ده ؟

يقوم بطباعة أفضل مجموعة من المعلمات التي تم العثور عليها بواسطة GridSearchCV بعد تجربة جميع التركيبات المحددة في param_grid وتقييمها باستخدام التحقق المتقاطع Cross-Validation مع cv=5.

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...