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

السؤال

Recommended Posts

  • 0
نشر

ما هي الخاصية n_iter في RandomizedSearchCV؟

في RandomizedSearchCV، الخاصية n_iter تُحدد عدد التكرارات (iterations) التي سيتم تجربتها أثناء البحث عن أفضل مجموعة من المعلمات (hyperparameters).

كيف تعمل؟

  •  على عكس GridSearchCV، الذي يجرب كل (مجموعة من القيم) الممكنة للمعلمات، يقوم RandomizedSearchCV بتجربة عدد محدد من (مجموعة من القيم) العشوائية من المعلمات.
  •  n_iter تتحكم في عدد هذه (مجموعة من القيم).
  •  كلما زادت n_iter، زادت فرص العثور على أفضل معلمات، لكن وقت البحث سيزداد أيضًا.

مثال عملي:

from sklearn.model_selection import RandomizedSearchCV 
from sklearn.ensemble import RandomForestClassifier 
import numpy as np 

# تعريف المعلمات الممكنة 
param_dist = { 'n_estimators': np.arange(10, 200, 10), 'max_depth': np.arange(3, 20), 'min_samples_split': np.arange(2, 10) } 

# إنشاء نموذج 
RandomForest rf = RandomForestClassifier() 

# البحث العشوائي مع تجربة 10 توليفات فقط 
random_search = RandomizedSearchCV(rf, param_distributions=param_dist, n_iter=10, cv=5, scoring='accuracy', random_state=42) 

# تشغيل البحث 
random_search.fit(X_train, y_train)

متى تستخدم n_iter؟

  • إذا كنت تريد تقليل وقت البحث وتوفير الموارد مقارنةً بـ GridSearchCV.
  • عندما يكون لديك عدد كبير من المعلمات المحتملة، وتريد البحث في عينة منها فقط.
  • إذا كنت تبحث عن تحسين تقريبي للمعلمات بدلًا من البحث الشامل.

الخلاصة:

  • n_iter: تحدد عدد التكرارات (التجارب) التي يتم تنفيذها لاختيار مجموعة من المعلمات بشكل عشوائي.
  • قيمة صغيرة (n_iter=10)بحث سريع ولكن قد لا يجد أفضل المعلمات.
  • قيمة كبيرة (n_iter=100)بحث أكثر دقة ولكنه يحتاج إلى وقت أطول.

بالتالي، n_iter تساعد في تحقيق توازن بين سرعة البحث ودقته!

  • 0
نشر (معدل)
بتاريخ 23 دقائق مضت قال Ali Ahmed55:

اه يعني اكثر من 5 ساعات ولسه لحد دلوقتي 

أسباب بطء RandomizedSearchCV

1. عدد كبير من القيم الممكنة (param_distributions)

    إذا كنت تستخدم نطاقًا واسعًا جدًا من القيم لكل معلمة، فسيأخذ البحث وقتًا طويلاً.

2. n_iter كبير جدًا

    إذا كنت قد ضبطت n_iter على قيمة عالية (مثل 100 أو أكثر)، فسيأخذ البحث وقتًا أطول.

3. حجم البيانات كبير جدًا

إذا كنت تعمل على مجموعة بيانات ضخمة، فقد يؤثر ذلك على سرعة البحث.

4. عدد كبير من الطيات (cv=5 أو cv=10)

    كلما زاد عدد الطيات (cross-validation)، زاد وقت التدريب.

-------------------------------------------------------------------------------

حلول لتسريع RandomizedSearchCV

1. تقليل n_iter

    جرّب تقليل عدد التوليفات العشوائية: استخدم n_iter=10 أو 20 بدلًا من 100 أو أكثر.

2. تقليل عدد الطيات (cv)

    استخدم cv=3 بدلاً من cv=5 أو cv=10:

3. تشغيل البحث على أكثر من نواة (n_jobs=-1)

    يتيح لك ذلك استخدام جميع المعالجات المتاحة لتسريع العملية.

تم التعديل في بواسطة Abdulrahman Muhammad
بعض التعديلات في التنسيق لرؤية وتوضيح أفضل

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...