تبدو المشكلة التي تواجهها مرتبطة بالاستخدام الخاطئ لميزة استخراج أهمية السمات في مكتبة XGBoost. في الواقع، يجب استخدام الكائن Booster
لاسترجاع أهمية السمات، لا XGBClassifier
مباشرة.
مقالات ذات صلة
بدلاً من استخدام fit.feature_importances_
، يمكنك استخدام الكود التالي لاسترداد أهمية السمات:
pythonfeature_importances = fit.get_booster().get_fscore()
وهنا تجد أن feature_importances
هو قاموس يحتوي على اسماء السمات واهميتها.
المزيد من المعلومات
طبقًا للمستندات الرسمية لمكتبة XGBoost، يمكن استخدام الكائن Booster
لاسترجاع أهمية السمات. يمكن الوصول إلى Booster
من خلال XGBClassifier
بعد تدريب النموذج.
للقيام بذلك، يمكنك استخدام الكود التالي:
pythonimport xgboost as xgb
# تدريب النموذج
xgb_model = xgb.XGBClassifier()
xgb_model.fit(X, Y)
# استرداد أهمية السمات
feature_importances = xgb_model.get_booster().get_fscore()
# طباعة أهمية السمات
for feature, importance in feature_importances.items():
print(f"Feature: {feature}, Importance: {importance}")
هذا الكود يقوم بطباعة أهمية كل سمة في النموذج الخاص بك.