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

السؤال

Recommended Posts

  • 0
نشر

بالنسبة ل XGBoost هي اختصارا لـ "Extreme Gradient Boosting" وهي مكتبة مفتوحة المصدر تستخدم في التعلم الآلي لتحسين أداء النماذج التنبؤية، و تعتمد على تقنية تحسين التدرج لبناء نماذج تعتمد على تجميع الأشجار بشكل متسلسل، حيث تحاول كل شجرة جديدة تقليل الأخطاء التي وقعت فيها الأشجار السابقة، حيث يتم ذلك من خلال حساب التدرج لتحديد الأخطاء التي يجب تصحيحها، وبالتالي يتم تحسين النموذج بشكل تدريجي، و تعتبر XGBoost واحدة من أفضل التقنيات في المسابقات العالمية للتعلم الآلي مثل Kaggle نظرا لسرعتها العالية وكفاءتها في التعامل مع البيانات الكبيرة والمعقدة.

لاستخدام XGBoost، يمكن تثبيتها عبر مكتبة Python باستخدام الأمر

pip install xgboost

بعدها يمكن استخدامها مع مكتبات مثل Scikit-learn لتدريب النموذج من خلال استدعاء واجهة مشابهة مثل XGBClassifier أو XGBRegressor، وضبط المعلمات مثل معدل التعلم وعدد الأشجار للحصول على أفضل أداء.

  • 0
نشر

XGBoost أو  (Extreme Gradient Boosting) هو مكتبة مفتوحة المصدر تستخدم لتطبيق أسلوب تعزيز التدرج (Gradient Boosting)  ويستخدم بشكل رئيسي في تحليل البيانات الهيكلية والمنافسات في تعلم الآلة أما طريقة عمله فهي كالآتي بالنسبة لمفهوم التعزيز أي أنه يجمع بين عدة متعلمين ضعفاء (عادة أشجار قرار) لتكوين نموذج قوي وأيضا:

  • Gradient Descent يستخدم للتقليل من الخسائر أي التقليل من دالة الخسارة.
  • و Regularization ويتضمن تنظيم L1 وL2 لتجنب الإفراط في التكيف.
  • التعامل مع القيم المفقودة: يمكنه التعامل مع القيم المفقودة بشكل طبيعي.
  • Parallelization أو التوازي بحيث يستفيد من تعدد الأنوية في وحدة المعالجة المركزية لزيادة سرعة التدريب.

بالنسبة للتثبيت:

pip install xgboost

استيراد المكتبات:

import xgboost as xgb
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

تحميل البيانات:

data = pd.read_csv('your_dataset.csv')
X = data.drop('target', axis=1)
y = data['target']

تقسيم البيانات:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

إنشاء DMatrix:

dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)

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

params = {
    'objective': 'binary:logistic',
    'max_depth': 3,
    'eta': 0.1,
    'eval_metric': 'logloss'
}

تدريب النموذج:

bst = xgb.train(params, dtrain, num_boost_round=100)

إجراء التنبؤات:

preds = bst.predict(dtest)
predictions = [1 if pred > 0.5 else 0 for pred in preds]

تقييم النموذج:

accuracy = accuracy_score(y_test, predictions)
print(f'Accuracy: {accuracy:.2f}')

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...