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

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

Meezo ML

السؤال

Recommended Posts

  • 3

هي نموذج للتصنيف باستخدام الشبكات العصبونية
يتم استخدامها عبر الموديول 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.

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...