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

تطبيق (Support Vector Regression(SVR في Sklearn

Meezo ML

السؤال

Recommended Posts

  • 3

SVR هو جزء من موديل support vector machine ويستخدم في مهام التوقع 
يمكنك استخدامها عبر الموديول sklearn.svm
مثل أي نموذج في التعلم الآلي يوجد لديه العديد من المعاملات التي تلعب دوراً أساسيا في عملية تعلم الموديل عبر داتا التدريب لنقوم بالمرور على أهم المعاملات التي يأخذها هذا النموذج.
#استدعاء المكتبة:

from sklearn.svm import SVR

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

SVRModel = SVR(kernel=’rbf’, degree=3, tol=0.001,C=1.0,max_iter=-1,epsilon=0.1,cache_size=200وgamma='auto')

أهم البارمتر المستخدمة:
البارمتر الأول kernel نوع النواة أو المعادلة المستخدمة تكافئ فكرة تابع التنشيط في الشبكات العصبونية
يوجد عدة أنواع ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ ننصح دوما باستخدام rbf لأنها الأفضل.
البارمتر الثاني degree وهو في حال أردنا جعل ال regressor غير خطي أي Polynomial نضبطه بالدرجة التي نريدها(default=3).
بحال استخدام الkernel=poly فيجب تحديد درجة كثير الحدود.
البارمتر الثالث tol عدد يمثل نقطة إيقاف التعلم  بحال تجاوز هذه القيمه فيتوقف svr.
البارمتر الرابع 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.
طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جداً فقط بعد أن تقوم بتقسيم الداتا إلى X_train, y_train,X_test,. y_test  تسطيع كتابة الأتي لعملية التدريب:

SVRM = SVR(kernel=’rbf’, degree=3, tol=0.001,C=1.0,max_iter=-1)
SVRM.fit(X_train, y_train)

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

y_pred = SVRM.predict(X_test)

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

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

مثال:

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
# تحميل الداتا
BostonData = load_boston()
data = BostonData.data
labels = BostonData.target
# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle =True, random_state=44)
# تطبيق التابع
SVRM = SVR(C = 1.0 ,epsilon=0.1,kernel = 'rbf')
SVRM.fit(X_train, y_train)
# عرض النتائج
print('SVRM Train Score is : ' , SVRM.score(X_train, y_train))
print('SVRM Test Score is : ' , SVRM.score(X_test, y_test))

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...