![]() |
سنقوم بأنشاء خوارزمية Support Vector Machine بلغة بايثون ألرائعة،وتحديداً بأستخدام مكتبة scikit-learn ألتي تساعدنا في تبسيط الكود البرمجي وسهولة فهمه وأستيعابه. |
خوارزمية Support Vector Machine (ألجزء ألعملي)
بعد إن قمنا بشرح ألجزء ألنظري في خوارزمية Support vector Machine، الآن نأتي ألى ألجزء ألعملي ألذي يُعتبر مكمل للمسار ألتدريبي لتعلم هذه ألخوارزمية ألرائعة والمهمة في عالم تعلم الآلة machine learning،حيث أثبتت فاعليتها في عمليات ألتصنيف ألمختلفة عند ألتعامل مع شتى ألبيانات.
سنقوم بأنشاء خوارزمية Support Vector Machine بلغة بايثون ألرائعة،وتحديداً بأستخدام مكتبة scikit-learn ألتي تساعدنا في تبسيط الكود البرمجي وسهولة فهمه وأستيعابه.
سنحتاج إلى بيانات عند بناء ألنموذج ألخاص بالخوارزمية ولأجراء عملية ألتصنيف classification،قمنا بأختيار بينات cancer dataset ألشهيرة في مجال تعلم الآلة ألمستخدمة في عمليات ألتصنيف ألمتعدد multi-class classification،ألتي تتكون من صور مرقمنة مأخوذة من كتلة الثدي ألتي تصف خصائص ألخلية ألموجودة في الصورة.تتكون هذه ألبيانات من 30 ميزة features سنقوم بعرضها لاحقاً من خلال الكود، وتحتوي على نوعين label من الخلايا هما ألخلايا ألخبيثة malignant والخلايا ألحميدة benign.
وتتوفر هذه ألبيانات ضمن مكتبة scikit-learn لذلك لاتوجد حاجة لتنزيلها من مصادر خارجية.
والآن لنقوم بأنشاء ألكود ألبرمجي،وكما قلنا سابقاً سيتم كتابته بلغة بايثون لذا هيا بنا للخطوة الأولى وهي تنزيل ألبيانات حيث تم أدراج بيانات cancer من ألمكتبة ألخاصة scikit-learn ووضعها في متغير أسميناه cancer.
from sklearn import datasets
cancer = datasets.load_breast_cancer()
print("Features: ", cancer.feature_names)
print("Labels: ", cancer.target_names)
Features: ['mean radius' 'mean texture' 'mean perimeter' 'mean area'
'mean smoothness' 'mean compactness' 'mean concavity'
'mean concave points' 'mean symmetry' 'mean fractal dimension'
'radius error' 'texture error' 'perimeter error' 'area error'
'smoothness error' 'compactness error' 'concavity error'
'concave points error' 'symmetry error' 'fractal dimension error'
'worst radius' 'worst texture' 'worst perimeter' 'worst area'
'worst smoothness' 'worst compactness' 'worst concavity'
'worst concave points' 'worst symmetry' 'worst fractal dimension']
Labels: ['malignant' 'benign']
cancer.data.shape
(569, 30)
يعني أن لدينا 569 مثال و 30 ميزة في هذه ألبيانات.
الآن نأتي إلى فقرة مهمة وهي كيفية تقسيم ألبيانات ألى بيانات تدريب وبيانات أختبار لكي يتسنى لنا إنشاء ألنموذج ألخاص بالخوارزمية svm
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.3,random_state=109) # 70% training
from sklearn import svm
classifier = svm.SVC(kernel='linear')
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn import metrics
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
Accuracy: 0.9649122807017544
هذا يعني أن دقة ألنموذج وصلت تقريباً 96% وهذا شيء ممتاز ويمكن أعتماده في تصنيف أي بيانات مستقبلية نرغب بها.
اشكرك جزيل الشكر اخي العزيز شرح و لا اروع مزيدا من التقدم
ردحذفشكرا لحضرتك على المرور
حذفشرح مختصر ومفيد
ردحذف