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

تطبيق Support vector machines (SVMs) في Sklearn لمهمة تصنيف Classification.

Meezo ML

السؤال

Recommended Posts

  • 1

يمكنك القيام بذلك عن طريق الكلاس SVC  من الموديول SVM. أي يمكنك استخدامها عبر الموديول svm.SVC
C-Support Vector Classification
الصيغة العامة:

class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=- 1, decision_function_shape='ovr', gamma='scale', break_ties=False, random_state=None)

الوسطاء:
يوجد عدة أنواع ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ ننصح دوما باستخدام rbf لأنها الأفضل.
degree: وهو في حال أردنا جعل ال regressor غير خطي أي Polynomial نضبطه بالدرجة التي نريدها(default=3).
بحال استخدام الkernel=poly فيجب تحديد درجة كثير الحدود.
 tol: عدد يمثل نقطة إيقاف التعلم  بحال تجاوز هذه القيمه فيتوقف svr.
kernel: النواة أو المعادلة المستخدمة تكافئ فكرة تابع التنشيط في الشبكات العصبونية.
C: معامل التنعيم أفضل القيم للتجريب 0.1,0.001,10,1
max_iter: العدد الأقصى للتكرارت إذا وضعت -1 فأنه يأخذ الحد الأعلى ويفضل ذلك
epsilon: ضمن هذا المقدار لن يتم تطبيق أي penalty على تابع التكلفة. أي هي هامش للسماحية بدون تطبيق penalty. افتراضياً default=0.1.
cache_size: تحديد حجم ال kernel cache وافتراضياً 200 MB.
gamma: معمل النواة وهي إما {‘scale’, ‘auto’}أو float وتكون افتراضياً 'default=’scale.
coef0: مصطلح مستقل يتعلق بدالة النواة ويعمل فقط في حالة كانت الدالة هي sigmoid و poly.
shrinking: لتحديد فيما إذا كنت تريد استخدام shrinking heuristic أو لا.
decision_function_shape: إما ova أو ovo وافتراضياً 'default='ovr  وهي تمثل شكل تابع القرار الذي سيتم إرجاعه one-vs-rest أو one-vs-one.
ال attributes:
intercept_ : التقاطع مع المحور الاحداثي أي الثوابت في معادلة الفرضية.
coef_: أوزان التدريب.
التوابع:
(data,labels)fit: للقيام بعملية التدريب.
(y-true,y_pred)score: لتقييم دقة النموذج.
(data)predict: للتوقع.
مثال على بيانات breast cancer وهي بيانات لأمراض سرطان الثدي.

from sklearn.metrics import confusion_matrix
import seaborn
import matplotlib
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# تحميل الداتا 
data = load_breast_cancer().data
labels = load_breast_cancer().target
# تقسيم البيانات 
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True)
# SVC تطبيق ال 
SVCM = SVC(kernel= 'rbf', max_iter=100, C=1.0, gamma='auto')
SVCM.fit(X_train, y_train)
# عرض الدقة 
print('Train Score is : ' , SVCM.score(X_train, y_train))
print('Test Score is : '  , SVCM.score(X_test, y_test)) #  0.8859649122807017
# لعرض القيم المتوقعة
y_pred = SVCM.predict(X_test)
# حساب مصفوفة التشتت 
c = confusion_matrix(y_test, y_pred)
print('Confusion Matrix is : \n', c)

# الرسم
seaborn.heatmap(c, center = True)
matplotlib.pyplot.show()

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...