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

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

Meezo ML

السؤال

Recommended Posts

  • 1

بداية كنصيحة للحصول على نتائج أفضل: يفضل استخدام هذه الخوارزمية عندما تكون الداتا متوزعة توزعاً طبيعياً، وهذه الخوارزمية تعتمد على نظرية بايز في الاحتمالات.
يتم استخدامه عبر الموديول

sklearn.naive_bayes.GaussianNB
  • استدعاء المكتبات:
from sklearn.naive_bayes import GaussianNB

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

  • الشكل العام للموديل:
    GNB = GaussianNB(priors=None, var_smoothing=1e-09)

    الوسيط الأول priors قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف 
    الوسيط الثاني var_smoothing  عندما يعمل GaussianNB كمرشح تمرير منخفض فأنه يقوم بأخذ القيم القريبه من وسط المنحني الغاوصي لذلك هذا الوسيط يؤدي إى توسيع المنحني وبتالي نستطيع أخذ  القيم البعيده 
    طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test,  تسطيع كتابة الأتي لعملية التدريب.

  • الشكل العام للموديل:

    GNB = GaussianNB(priors=None, var_smoothing=1e-09)
    GNB.fit(X_train, y_train)

    حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب . 

  • حساب القيم المتوقعة:
y_pred = GNB.predict(X_test)
  • نستطيع حساب دقة الموديل أو كفاءته  على التدريب والاختبار عن طريق التابع score ويكون وفق الشكل:
    print('GNB Train Score is : ' , GNB.score(X_train, y_train))
    print('GNB Test Score is : ' , GNB.score(X_test, y_test))

    لنأخذ مثال يوضح المصنف.قمنا باستدعاء المكتبات وبناء عينة مزيفة وكان التصنيف ثنائي أما 1 أو 0 بعد ذلك استخدمنا GaussianNB
    ثم قمنا بتجريب الموديل على عينة معطاة:

    #استدعاء المكتبات
    import numpy as np
    from sklearn.naive_bayes import GaussianNB
    #تعين داتا دخل مزيفة
    X = np.array([[1, 1], [2, 1], [3, -2], [-1, -1], [4, 1], [-5, 2]])
    Y = np.array([0, 1, 0, 1, 0, 1])
    #يناء الموديل
    GNB = GaussianNB()
    GNB.fit(X, Y)
    #تصنيف عينة
    print(GNB.predict([[-0.8, -1]]))
    #النتيجة
    #[1]

     

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...