مقدمة في تعلم الآلة — تعلم الآلة
مقدمة في تعلم الآلة
في البرمجة التقليدية تكتب القواعد بنفسك. في تعلم الآلة تعطي الحاسوب أمثلة، ويستنتج هو القاعدة.
البرمجة التقليدية: القواعد + البيانات ← النتائج
تعلم الآلة: البيانات + النتائج ← القواعد (النموذج)مثال: كشف الرسائل المزعجة. محاولة كتابة قواعد يدوية ("إذا احتوت كلمة مجاني...") تفشل سريعاً. أما بآلاف الرسائل المصنفة سابقاً، فيتعلم النموذج الأنماط بنفسه ويتكيف معها.
متى نستخدمه؟ ومتى لا؟
| مناسب | غير مناسب |
|---|---|
| القواعد معقدة أو غير معروفة (التعرف على الصور، التنبؤ بالأسعار) | القاعدة بسيطة وواضحة (حساب الضريبة) |
| توجد بيانات كافية وممثلة | لا توجد بيانات، أو البيانات منحازة |
| الخطأ أحياناً مقبول | كل خطأ كارثي ولا يمكن تفسيره |
الأنواع الثلاثة
| النوع | البيانات | المهمة | أمثلة |
|---|---|---|---|
| بإشراف (Supervised) | مدخلات مع الإجابات (labels) | انحدار (قيمة رقمية) أو تصنيف (فئة) | سعر منزل، رسالة مزعجة أم لا |
| بدون إشراف (Unsupervised) | مدخلات بلا إجابات | اكتشاف بنية: تجميع، تقليل أبعاد | تقسيم العملاء لمجموعات |
| تعزيزي (Reinforcement) | مكافآت من التجربة | تعلم سلوك | الألعاب، الروبوتات |
هذه الدورة تركز على التعلم بإشراف وبدون إشراف بمكتبة scikit-learn.
المصطلحات
| المصطلح | المعنى | في الكود |
|---|---|---|
| عينة (sample) | صف واحد: منزل، طالب، رسالة | صف في X |
| ميزات (features) | خصائص العينة المدخلة | أعمدة X |
| الهدف (target/label) | ما نريد التنبؤ به | y |
| التدريب (fit) | تعلم النموذج من البيانات | model.fit(X, y) |
| التنبؤ (predict) | تطبيق النموذج على بيانات جديدة | model.predict(X_new) |
اصطلاحاً X مصفوفة ثنائية الأبعاد (عينات × ميزات) حتى لو كانت ميزة واحدة: [[1], [2], [3]]، و y مصفوفة أحادية البعد.
واجهة scikit-learn الموحّدة
كل النماذج تقريباً تُستخدم بنفس الخطوات — تعلّمها مرة واحدة:
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1], [2], [3], [4], [5]]) # ساعات الدراسة
y = np.array([52, 61, 69, 81, 88]) # الدرجة
model = LinearRegression() # 1) اختر النموذج
model.fit(X, y) # 2) درّب
print(model.predict([[6]])) # 3) تنبأ لبيانات جديدةدورة حياة مشروع ML
1. فهم المشكلة: ماذا نتنبأ؟ كيف نقيس النجاح؟
2. جمع البيانات واستكشافها.
3. تحضير البيانات: قيم ناقصة، نصوص إلى أرقام، تقييس.
4. تقسيم البيانات: تدريب واختبار — قبل أي شيء يتعلم من البيانات.
5. التدريب وتجربة عدة نماذج.
6. التقييم على بيانات لم يرها النموذج.
7. النشر والمراقبة: البيانات تتغير مع الزمن.
أغلب الوقت في المشاريع الحقيقية يذهب للخطوات 2–3، لا للخوارزمية.
تمرين
لكل مشكلة حدد النوع (انحدار، تصنيف، تجميع): التنبؤ بدرجة الحرارة غداً، تصنيف صورة كقطة أو كلب، تقسيم مقالات لمواضيع دون تصنيف مسبق، توقع إن كان العميل سيلغي اشتراكه.
# أول مثال على ML
from sklearn.linear_model import LinearRegression
import numpy as np
# البيانات: ساعات الدراسة → الدرجة
X = np.array([[1], [2], [3], [4], [5]]) # ساعات
y = np.array([50, 60, 70, 80, 90]) # درجات
# إنشاء وتدريب النموذج
model = LinearRegression()
model.fit(X, y)
# التنبؤ
hours = 6
prediction = model.predict([[hours]])
print(f"إذا درست {hours} ساعات، درجتك المتوقعة: {prediction[0]:.0f}")اختبر فهمك