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

تطبيق خوارزمية  Complement Naive Bayes لمهمة تصنيف في مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

هذه الخوارزمية تستخدم في التصنيف الثنائي ويعتمد على نظرية بايز ويفضل استخدامه عندما يكون هنالك بيانات غير متوازنة أي يكون أحد الفئات له أمثلة أكثر من الفئات الأخرى كمثال أن يكون مثلا لدينا 10000 مثال يكون الخرج فيها 1 و100 مثال يكون فيها الخرج 0 و50 مثال يكون الخرج فيها 2 لذلك MultinomialNB لن يكون فعالا مثل ComplementNB في هذا الوضع.
يتم استخدامه عبر الموديول sklearn.naive_bayes.
استدعاء المكتبات:

from sklearn.naive_bayes import ComplementNB

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

CNB = ComplementNB(alpha=1.0, fit_prior=True, class_prior=None,norm=True)

الوسيط الأول alpha هي الهدف من هذا الوسيط هو عند حساب الاحتمالات أحد هذه الاحتمالات من الممكن أن يكون صفر وتجنباً لذلك يتم وضع قيمة تسمى قيمة تنعيم  أو تجانس لابلاس لكي لا يكون هناك قيم صفرية.
الوسيط الثاني fit_prior تأخذ True فقط لكي تعلم الصفوف الاحتمالات السابقة false عكس ذلك.
الوسيط الثالث class_prior قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف.
الوسيط الرابع  norm يكون True إذا أردنا بتطبيق التسوية على الأوزان وfalse عكس ذلك.
طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جداً فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test,  تسطيع كتابة الأتي لعملية التدريب.
الشكل العام للموديل:

CNB = ComplementNB(alpha=1.0, fit_prior=True, class_prior=None,norm=True)
CNB.fit(X_train, y_train)

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

y_pred = CNB.predict(X_test)

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

print('CNB Train Score is : ' , CNB.score(X_train, y_train))
print('CNB Test Score is : ' , CNB.score(X_test, y_test))

لنأخذ مثال يوضح المصنف.
قمنا باستدعاء المكتبات وبناء عينة مزيفة وكان التصنيف lامتعدد أما 1 أو 2 أو 3 بعد ذلك استخدمنا ComplementNB
ثم قمنا بتجريب الموديل على عينة معطاة.

# استدعاء المكتبات
import numpy as np
from sklearn.naive_bayes import ComplementNB
# تعين داتا دخل مزيفة
X = np.random.random((6, 100))
y = np.array([1, 1, 3, 3, 2, 2])
# بناء الموديل
CNB =ComplementNB ()
CNB.fit(X, y)
#تصنيف عينة
print(CNB.predict(X[4:5]))
# النتيجة [2]

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...