ضبط Hyperparameters لرفع دقة نماذج ML

x32x01
  • بواسطة x32x01 ||
🤖✨ لو إنت داخل مجال Machine Learning أو حتى لسه بتبدأ فيه، أكيد سمعت مصطلح كده غريب شويّة: Hyperparameters
وبصراحة، من غير ما تفهم الكلمة دي كويس، عمرك ما هتقدر تبني Model قوي ولا توصل لأفضل Accuracy مهما عملت 😅🔥.

البوست يخليك فاهم يعني إيه Hyperparameters، ليه مهمة جدًا، وإزاي بتأثر فعليًا على أداء أي Model في التعلم الآلي. وهنمشي واحدة واحدة، ومع كل خوارزمية هندي مثال كود عملي علشان الصورة تبقى أوضح.
يلا بينا نبدأ 💪🚀



يعني إيه Hyperparameters أصلاً؟ 🤔💡

بص يا معلم…
عندك نوعين من القيم في أي Machine Learning Model:
  1. Parameters
    دي الحاجات اللي النموذج بيتعلمها بنفسه… زي الـ Weights في Linear Regression أو الحدود في Decision Tree.
  2. Hyperparameters
    دي بقى اللي بنضبطها بإيدينا قبل ما النموذج يبدأ التدريب.
    يعني أنت اللي بتختار:
    • عمق الشجرة؟
    • عدد الجيران؟
    • نوع الـ Kernel؟
    • قوة الانتظام Regularization؟
    • Learning Rate؟
    • Batch Size؟
    • وكل قيمة من دي بتغيّر شكل النموذج بالكامل 💥.

الخلاصة:
Hyperparameters = الريموت كنترول بتاع الـ Model… لو ظبطته صح، النموذج يشتغل زي الوحش 🦁، ولو ظبطته غلط… هيديك نتائج ملهاش أي علاقة بالواقع 😅.



طب ليه Hyperparameters مهمة للدرجة دي؟ 🎯

لأنها ببساطة بتتحكم في:
  • سرعة التدريب
  • قدرة النموذج على التعميم Generalization
  • الـ Overfitting & Underfitting
  • الدقة Accuracy
  • التعقيد Complexity
  • الأداء مع البيانات الكبيرة
يعني ممكن Model بسيط جدًا… وبس تغيّر Hyperparameter واحد، يتحول من حاجة بتديك 60% Accuracy لحاجة بتوصل لـ 95% 😳🔥.



أشهر الخوارزميات وأهم الـ Hyperparameters فيها 🧠📊

هنشرح الخوارزميات اللي الناس كلها بتستخدمها، وهندي مثال كود Python لكل واحدة.



الانحدار الخطي Linear Regression 📈

الـ Linear Regression بسيط جدًا… لكن لما بنستخدم الــ Regularization (زي Ridge/Lasso) بنحتاج Hyperparameters مهمة.

أهم Hyperparameters​

  • Alpha:
    ده معامل الانتظام…
    لو زوّدته → النموذج يقل تعقيد
    لو قللته → النموذج يتعلم أكتر بس ممكن يعمل Overfitting

مثال كود:​

Python:
from sklearn.linear_model import Ridge

model = Ridge(alpha=1.0)
model.fit(X_train, y_train)

ليه مهم؟​

علشان يوازن بين التعقيد والدقة… ولا النموذج يبالغ في حفظ البيانات.



الانحدار اللوجستي Logistic Regression 🔐

من أشهر خوارزميات التصنيف مهما كان المشروع.

أهم Hyperparameters​

  • C:
    عكس الـ Regularization… القيمة الكبيرة = انتظام أقل.
  • Penalty:
    L1 أو L2… ودي بتغير سلوك النموذج تمامًا.

مثال كود:​

Python:
from sklearn.linear_model import LogisticRegression

model = LogisticRegression(C=1.0, penalty='l2')
model.fit(X_train, y_train)

ليه مهم؟​

لأن اختيار Penalty مناسب يخلي النموذج يتعلم أحسن من غير Overfitting.



الأشجار القرارية Decision Tree 🌳

ودي من أكتر الخوارزميات اللي عندها Hyperparameters كتير.

أهم Hyperparameters​

  • Max_depth: أقصى عمق للشجرة
  • Min_samples_split: أقل عدد عينات علشان العقدة تتقسم
  • Min_samples_leaf: أقل عدد عينات للورقة
  • Criterion: Gini أو Entropy

مثال كود:​

Python:
from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(
    max_depth=5,
    min_samples_split=4,
    criterion='gini'
)
model.fit(X_train, y_train)

ليه مهم؟​

علشان الشجرة لو سبناها عالبركة… هتعمل Overfitting زي الجن 😅.



خوارزمية KNN – K-Nearest Neighbors 🧭

واحدة من أسهل الخوارزميات… لكنها معتمدة بشكل كامل على Hyperparameters.

أهم Hyperparameters​

  • n_neighbors: عدد الجيران
  • Weights: uniform أو distance
  • Metric: Euclidean / Manhattan

مثال كود:​

Python:
from sklearn.neighbors import KNeighborsClassifier

model = KNeighborsClassifier(
    n_neighbors=5,
    metric='euclidean'
)
model.fit(X_train, y_train)

ليه مهم؟​

اختيار عدد الجيران الصح = نموذج دقيق
اختيار غلط = نموذج يدوّخك 🤯.



آلات الدعم المتجهية SVM ⚡🔥

خوارزمية قوية جدًا… لكن Hyperparameters بتاعتها محتاجة فهم.

أهم Hyperparameters​

  • C: يتحكم في قبول الخطأ
  • Kernel: RBF / Linear / Polynomial
  • Gamma: مدى تأثير كل نقطة
  • Degree: درجة الـ Polynomial

مثال كود:​

Python:
from sklearn.svm import SVC

model = SVC(
    C=1.0,
    kernel='rbf',
    gamma='scale'
)
model.fit(X_train, y_train)

ليه مهم؟​

لأن أي قيمة غلط ممكن تخلي النموذج يفشل تمامًا… خصوصًا مع البيانات الكبيرة.



إزاي تضبط الـ Hyperparameters صح؟ 🎛️🔥

دي مرحلة كبيرة اسمها Hyperparameter Tuning
ومن أشهر طرقها:

1. Grid Search

يجرب كل الاحتمالات المتاحة.
Python:
from sklearn.model_selection import GridSearchCV

params = {'C': [0.1, 1, 10], 'kernel': ['rbf', 'linear']}
grid = GridSearchCV(SVC(), params)
grid.fit(X_train, y_train)

2. Random Search

يجرب قيم عشوائية… أسرع.

3. Bayesian Optimization

ذكي واحترافي… بيختار قيم بناء على الأداء السابق.

4. Optuna

أقوى إطار في الوقت الحالي.



أمتى أعرف إن الـ Hyperparameters مظبوطة؟ 📌

✔️ Accuracy عالية
✔️ Loss قليل
✔️ مفيش Overfitting
✔️ Training سريع
✔️ Model متزن
ولو لقيت إن النموذج مثالي على التدريب لكن ضعيف على الاختبار…
يبقى لازم تقلل التعقيد وتزود Regularization.

الخلاصة 🎯

الـ Hyperparameters مش مجرد قيم عشوائية… دي مفاتيح النجاح في Machine Learning.
لو ظبطتها صح → هتاخد Model دقيق وسريع وStable.
ولو أهملتها → أي مشروع Machine Learning هيبقى زبون عندك في الصيانة 😅.

فهمها كويس… جرّب… اختبر… وعدّل…
وهتوصل لنتيجة ممتازة أكيد 💚🤖✨
 
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,046
المشاركات
2,248
أعضاء أكتب كود
491
أخر عضو
Ayman
عودة
أعلى