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

تطبيق خوارزمية ََQDA(Quadratic Discriminant Analysis) من مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

QDA(Quadratic Discriminant Analysis)
هو طريقة تستخدم في تقليل الأبعاد وخاصة في مسائل التصنيف التابعة بالتعليم بإشراف فلو كان لدينا عملية تصنيف ما لأكثر من صنف هو نفس LDA الفرق الوحيد أن LDA عملية الفصل لديه خطية أما  QDA مربعة، ويمكن استخدامه كموديل للتنصيف.
يتم استخدامه عبر الموديول:

sklearn.discriminant_analysis

استدعاء المكتبات:

from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis

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

QDA=QuadraticDiscriminantAnalysis(priors=None, reg_param=0.0,  tol=0.0001)

الوسيط الأول  priors قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف.
الوسيط الثاني reg_param يمثل معامل التنعيم.
الوسيط الثالث tol مقدار التسامح في التقارب من القيم الدنيا.
طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train, y_train,X_test, y_test  تسطيع كتابة الأتي لعملية التدريب.

#الشكل العام للموديل
QDA=QuadraticDiscriminantAnalysis( priors=None, reg_param=0.0,tol=0.0001)
QDA.fit(X_train, y_train)

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

#حساب القيم المتوقعة
y_pred QDA.predict(X_test)

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

# حساب الكفاءه على الاختبار والتدريب
print('QDA Train Score is : ' , QDA.score(X_train, y_train))
print('QDA Test Score is : ' , QDA.score(X_test, y_test))

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

# استدعاء المكتبات
import numpy as np
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
#تعين داتا دخل مزيفة
X = np.array([[1, 1], [3, 1], [-3, -2], [-1, -1], [-3, -1], [3, 2]])
y = np.array([1, 0, 0, 1, 1, 1])
#بناء الموديل
QDA = QuadraticDiscriminantAnalysis()
QDA.fit(X,y)
#طباعة تصنيف العينه
print(QDA.predict([[-1, -0.4]]))
#النتيجة
#[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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...