التحسين البايزي باستخدام Optuna
استخدام optuna.create_study() وsuggest_float/int/categorical والتقليم والتصور.
التحسين البايزي باستخدام Optuna درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
أذكى من البحث العشوائي
يتجاهل البحث الشبكي والعشوائي النتائج السابقة. أما التحسين البايزي فيتعلم من التجارب السابقة ليقترح معلمات فائقة أكثر وعدًا في الخطوة التالية، ويجد قيمًا جيدة بعدد أقل من عمليات التقييم.
ما الذي يقدمه Optuna
إن Optuna إطار عمل شائع لتحسين المعلمات الفائقة. تعرّف دالة هدف، ثم يأخذ Optuna عينات من المعلمات الفائقة بذكاء ويتذكر ما نجح منها.
إنشاء دراسة
تدير الدراسة عملية التحسين. اضبط direction على "maximize" للدقة أو AUC، أو على "minimize" للخسارة أو الخطأ.
import optuna
study = optuna.create_study(direction="maximize")دالة الهدف
تتلقى دالة الهدف كائن trial، وتقترح معلمات فائقة، وتدرّب نموذجًا، ثم تعيد الدرجة المراد تحسينها.
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
def objective(trial):
n = trial.suggest_int("n_estimators", 100, 500)
d = trial.suggest_int("max_depth", 3, 20)
clf = RandomForestClassifier(n_estimators=n, max_depth=d)
return cross_val_score(clf, X, y, cv=3).mean()اقتراح المعلمات الصحيحة
تختار trial.suggest_int(name, low, high) عددًا صحيحًا ضمن نطاق. أضف step أو log=True للتحكم في أخذ العينات.
def objective(trial):
n_estimators = trial.suggest_int("n_estimators", 100, 1000, step=50)
return train_and_score(n_estimators)اقتراح المعلمات العشرية
تختار trial.suggest_float(name, low, high) عددًا حقيقيًا. استخدم log=True مع معلمات مثل معدل التعلم التي تمتد عبر رتب مقدار متعددة.
def objective(trial):
lr = trial.suggest_float("learning_rate", 1e-4, 0.3, log=True)
subsample = trial.suggest_float("subsample", 0.5, 1.0)
return train_and_score(lr, subsample)اقتراح المعلمات الفئوية
تختار trial.suggest_categorical(name, choices) قيمة من قائمة ثابتة، وهو مثالي لخيارات مثل نوع النواة أو طريقة التعزيز.
def objective(trial):
kernel = trial.suggest_categorical("kernel", ["linear", "rbf", "poly"])
return train_svm(kernel)تشغيل التحسين
يشغّل study.optimize(objective, n_trials=N) البحث على مدى N من التجارب. تستكشف التجارب الإضافية مساحة أكبر، بينما يركّز Optuna بمرور الوقت على المناطق الواعدة.
study.optimize(objective, n_trials=100)قراءة أفضل نتيجة
بعد التحسين، يعرض study.best_params أفضل المعلمات الفائقة، بينما يعرض study.best_value أفضل درجة لدالة الهدف.
print("Best params:", study.best_params)
print("Best value:", study.best_value)
best = RandomForestClassifier(**study.best_params)
best.fit(X, y)تقليص التجارب غير الواعدة
يمكن لـ Optuna إيقاف التجارب الضعيفة مبكرًا باستخدام أدوات التقليم (pruners)، مما يوفر القدرة الحاسوبية. أبلغ عن القيم الوسيطة وافحص trial.should_prune() داخل حلقات التدريب.
import optuna
study = optuna.create_study(
direction="maximize",
pruner=optuna.pruners.MedianPruner(),
)لماذا يتوسع Optuna بكفاءة
يدعم Optuna التجارب المتوازية، والتخزين الدائم، وتصوير عملية البحث. وبالنسبة إلى النماذج المكلفة، يعثر نهجه البايزي عالي الكفاءة في أخذ العينات على إعدادات قوية بعدد أقل بكثير من التجارب مقارنة بالبحث الشبكي أو العشوائي.
اختبار سريع
اختبر معرفتك بـ Optuna.
خلاصة
خلاصة: يستخدم Optuna التحسين البايزي لضبط المعلمات الفائقة بكفاءة. أنشئ دراسة باستخدام direction، واكتب دالة هدف تستخدم trial.suggest_int/float/categorical، وشغّل study.optimize(objective, n_trials=N)، ثم اقرأ study.best_params وstudy.best_value. وتوقف أدوات التقليم التجارب الضعيفة لتوفير القدرة الحاسوبية.
الأسئلة الشائعة
هل درس «التحسين البايزي باستخدام Optuna» مجاني؟
نعم — نص درس «التحسين البايزي باستخدام Optuna» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «التحسين البايزي باستخدام Optuna»؟
استخدام optuna.create_study() وsuggest_float/int/categorical والتقليم والتصور. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحسين البايزي باستخدام Optuna»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استراتيجيات التحقق المتقاطع
- تعمّق في مقاييس التصنيف
- البحث الشبكي والبحث العشوائي
- التحسين البايزي باستخدام Optuna