83- كورس برمجة Machine Learning بلغة البايثون Python شرح – Train/Test

فهم عملية Train/Test في بايثون

مفهوم Train/Test في تعلم الآلة

عند بناء نموذج تعلم آلي، يعتبر تقسيم البيانات إلى مجموعات تدريب واختبار خطوة حاسمة لضمان فعالية النموذج. يستخدم مصطلح “Train/Test” للإشارة إلى هذه العملية، حيث تُستخدم مجموعة البيانات التدريبية لتدريب النموذج، بينما تُستخدم مجموعة البيانات الاختبارية لتقييم أدائه. الهدف هو التأكد من أن النموذج يتعلم الأنماط العامة وليس مجرد حفظ البيانات. إن استخدام مجموعة اختبار منفصلة يتيح لنا قياس مدى قدرة النموذج على التعميم على بيانات جديدة لم يرها من قبل.

في بايثون، تُعد مكتبة Scikit-Learn واحدة من أكثر المكتبات شهرة لتنفيذ هذه العملية. توفر المكتبة دالة train_test_split التي تسهل تقسيم البيانات بشكل عشوائي إلى مجموعات تدريب واختبار. تعتبر هذه العملية أساسية لبناء نماذج موثوقة وقابلة للتعميم.

كيفية تنفيذ Train/Test باستخدام بايثون

لتنفيذ عملية Train/Test في بايثون، نبدأ أولاً باستيراد مكتبة Scikit-Learn. بعد ذلك، نقوم بتحميل البيانات التي نرغب في استخدامها، مثل مجموعة بيانات الإيريس الشهيرة. بعد تجهيز البيانات، يمكننا استخدام train_test_split لتقسيمها. يتم تحديد نسبة معينة من البيانات لتكون مجموعة اختبارية، بينما تُستخدم النسبة الباقية لتدريب النموذج. مثال بسيط على ذلك:

from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris

# تحميل البيانات
iris = load_iris()
X, y = iris.data, iris.target

# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# التحقق من الأشكال
print("شكل بيانات التدريب:", X_train.shape)
print("شكل بيانات الاختبار:", X_test.shape)

في هذا المثال، قمنا بتقسيم البيانات بحيث تكون نسبة 20% منها للاختبار و80% للتدريب. هذه النسبة شائعة الاستخدام، لكنها قد تختلف حسب حجم البيانات المتوفرة ومتطلبات النموذج. من المهم استخدام random_state لضمان إمكانية إعادة إنتاج النتائج، وهي خطوة مفيدة أثناء تطوير النماذج وتحليل النتائج.