• 0

بناء شبكة عصبية لمهمة تصنيف باستخدام MLPClassifier في مكتبة Sklearn

كيف نقوم ببناء شبكة عصبية لمهمة تصنيف باستخدام MLPClassifier في مكتبة Sklearn؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

هي نموذج للتصنيف باستخدام الشبكات العصبونية
يتم استخدامها عبر الموديول neural_network.MLPClassifier
مثل أي نموذج في التعلم الألي يوجد لديه العديد من المعاملات التي تلعب دورا أساسيا في عملية تعلم الموديل عبر داتا التدريب لنقوم بالمرور على أهم المعاملات التي يأخذها هذا النموذج 

#استدعاء المكتبة

from sklearn.neural_network import MLPClassifier

في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل
#الشكل العام للموديل

MLPClassifierModel = MLPClassifier(activation='tanh',
                                 solver='adam',  
                                 learning_rate='constant', 
                                 early_stopping= False,
                                 alpha=0.0001 ,hidden_layer_sizes=(100, 3))

البارمتر الأول activation مثلما نعرف يوجد في الشبكات العصبونية عدة أنواع لتوابع التنشيط أو activation ومن أهمها تابع sigmoid , relu,tanh لن أدخل في تفاصيل كل منها فأي دورة تعلم الآلة أو تعلم عميق تحوي هذه المفاهيم ولكن كنصيحه نقوم بجعل relu لجميع الطبقات ماعدا الأخيره أما الطبقة الأخيره نستخدم sigmod
البارمتر الثاني  solver هو طريقة الحل أو طريقة الوصول إلى أفضل قيم w,b الأوزران الخاصه بالشبكه العصبونية يوجد أكثر من طريقه مثل sgd ,adam ولكن  ننصح باستخدام adam دوما
البارمتر الثالث learning_rate هو معامل التعلم وهو يمثل مقدار الخطوه للوصول إلى الأوزران ويمكن تركه costant أي خطوات ثابتة أو  adaptive متغيره أما ان تكون طويله أو قصيرة 
البارمتر الرابع early_stopping التوقف المبكر وهو يأخذ True بحال أردنا أيقاف معامل التعلم عند نقطه بحيث لا يدخل الموديل في مرحلة overfit أي الضبط الزائد وfalse عكس ذلك
البارمتر الخامس alpha يمثل معامل التنعيم حيث التنعيم هو طريقة لكي يتخلص الموديل من الضبط الزائد overfit ويلعب alpha دورا مهما في ذلك
البارمتر السادس hidden_layer_sizes وهو يمثل عدد الطبقات ماعدا طبقة الدخل والخرج لأنهما لا تعتبرا طبقات مخفيه وعدد الخلايا في كل طبقه حيث الأرقام تدل على عدد الخلايا في الطبقه أما موقع الرقم يدل على الطبقه وعدد المواقع يدل على عدد الطبقات المخفيه فمثلا (10,200,30,4) يوجد أربعة طبقات لأنه يوجد أربع أرقام وكل رقم منها يدل على عدد الخلايا في طبقته مثلا الطبقة الأولى تحوي 10 خلايا
طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train, y_train,X_test, y_test  تسطيع كتابة الأتي لعملية التدريب 
 

MLPClassifierModel = MLPClassifier(activation='tanh',
                                 solver='adam',  
                                 learning_rate='constant', 
                                 early_stopping= False,
                                 alpha=0.0001 ,hidden_layer_sizes=(100, 3))
MLPClassifierModel.fit(X_train, y_train)

حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لتدريب الشبكه العصبية 
يوجد دالة أخرى تستخدم لغرض التنبؤ كالاتي:

y_pred = MLPClassifierModel.predict(X_test)

حيث قمنا بالتنبؤ بقيم التصنيف لداتا الاختبار
نستطيع أيضا حساب دقة الموديل أو كفاءته عن طريق التابع score ويكون وفق الشكل:

print('MLPClassifierModel Test Score is : ' , MLPClassifierModel.score(X_test, y_test))

حيث قمنا بطباعة قيمتها لكي نرى كفاءة الموديل على بيانات الاختبار وهل هو يعاني من الضبط الزائد  overfit أو الضبط الناقص underfit.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن