Meezo ML نشر 13 يونيو 2021 أرسل تقرير نشر 13 يونيو 2021 كيف نقوم بتطبيق خوارزمية Gradient Boosting لمهمة تصنيف Classification باستخدام مكتبة Sklearn؟ اقتباس
1 Ali Haidar Ahmad نشر 13 يونيو 2021 أرسل تقرير نشر 13 يونيو 2021 (معدل) يمكنك ذلك عن طريق الموديول: ensemble.GradientBoostingClassifier الصيغة العامة: sklearn.ensemble.GradientBoostingClassifier(loss='deviance', learning_rate=0.1, n_estimators=100, subsample=1.0, criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, max_depth=3, random_state=None, max_features=None, verbose=0, max_leaf_nodes=None, validation_fraction=0.1, n_iter_no_change=None, tol=0.0001, ccp_alpha=0.0) الوسطاء: loss: معادلة التكلفة المستخدمة. {‘deviance’, ‘exponential’}, 'default=’deviance n_estimators : عدد مراحل ال boosting المستخدمة. default=100 learning_rate: قيمة معامل التعلم افتراضياً 0.1. criterion: الأسلوب الرياضي للمعالجة (قياس جودة الانقسام) وتكون {‘friedman_mse’, ‘mse’, ‘mae’}, 'default=’friedman_mse max_depth : عمق الأشجار. min_samples_split:الحد الأدنى لعدد العينات المطلوبة لتقسيم عقدة داخلية. int , default=2. min_samples_leaf: الحد الأدنى لعدد العينات المطلوبة في العقدة التي تمثل الاوراق. default=1. random_state: يتحكم بعملية التقسيم افتراضياً يكون None. verbose: لعرض التفاصيل التي تحدث في التدريب. افاراضياً 0 أي لايظهر شيء، أما وضع أي قيمة أكبر من الصفر سيعرض التفاصيل int. max_features:العدد المناسب من الفيتشرز التي يتم احتسابها {“auto”, “sqrt”, “log2”}. في حال auto: max_features=sqrt(n_features). sqrt: ax_features=sqrt(n_features). log2: max_features=log2(n_features). None: max_features=n_features. إذا وضعت قيمة float: max_features=int(max_features * n_features) قيمة int: سيتم أخذ ال features عند كل تقسيمة ك max_features. validation_fraction: النسبة التي سيتم اقتطاعها من عينة التدريب للاستخدام كعينة تطوير. افتراضياً 0.1 n_iter_no_change: لتطبيق مفهوم التوقف المبكر "early stopping" (إيقاف التدريب عندما تتوقف عينة التطةير عن التحسن). افتراضياً None أي لن تطبق، إذا أسندت لها أي عدد صحيح سيتم تطبيقه. tol: مقدار السماحية في التقاربم من القيم المثالية. افتراضياً 0.0001 ccp_alpha: معامل تعقيد يستخدم لتقليل التكلفة الزمانية والمكانية. non-negative float, default=0.0 ال attributtes: classes_: لعرض ال labels التي وجدها. n_outputs_: عدد المخرجات الناتجة عن عملية ال fitting. estimators_: عرض معلومات عن كل الخوارزميات التي تم تشكيلها. feature_importances_: عرض أهم الفيتشرز المؤثرة في التوقع. n_features_: عدد الفيتشرز. التوابع: fit(data): للقيام بعملية التدريب. predict(data): لتوقع القيم. score(data): لتقييم كفاءة النموذج. ()get_params :لايجاد مقدار الدقة. predict_proba(data) : لعمل التوقع أيضاً لكن هنا سيخرج الفيمة الاحتمالية(أي لن يتم القصر على عتبة) apply(data): ياتي لك بقيمة الورقة المحسوبة. مثال: # استيراد المكتبات from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import confusion_matrix import seaborn as sns import matplotlib.pyplot as plt #تحميل البيانات data = load_breast_cancer().data labels = load_breast_cancer().target # تقسيم البيانات X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True) # RandomForestClassifier تطبيق GBCM = GradientBoostingClassifier(n_estimators=110,max_depth=1,random_state=44,n_iter_no_change=1) GBCM.fit(X_train, y_train) print('Train Score is : ' , GBCM.score(X_train, y_train)) # Train Score is : 0.9758241758241758 print('Test Score is : ' , GBCM.score(X_test, y_test)) # Test Score is : 0.9649122807017544 #print('No. of n_classes_ are : ' , GBCM.n_classes_) # No. of n_classes_ are : 2 #print('No. of features are :', GBCM.n_features_) # No. of features are : 30 # عرض معلومات عن كل الأشجار التي تم تشكيلها #print(GBCM.estimators_) # عرض أهم الفيتشرز #print( GBCM.feature_importances_) تم التعديل في 13 يونيو 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
السؤال
Meezo ML
كيف نقوم بتطبيق خوارزمية Gradient Boosting لمهمة تصنيف Classification باستخدام مكتبة Sklearn؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.