Kodax

مقدمة في تعلم الآلة — تعلم الآلة

مقدمة في تعلم الآلة

في البرمجة التقليدية تكتب القواعد بنفسك. في تعلم الآلة تعطي الحاسوب أمثلة، ويستنتج هو القاعدة.

البرمجة التقليدية:  القواعد + البيانات  ← النتائج
تعلم الآلة:        البيانات + النتائج  ← القواعد (النموذج)

مثال: كشف الرسائل المزعجة. محاولة كتابة قواعد يدوية ("إذا احتوت كلمة مجاني...") تفشل سريعاً. أما بآلاف الرسائل المصنفة سابقاً، فيتعلم النموذج الأنماط بنفسه ويتكيف معها.

متى نستخدمه؟ ومتى لا؟

| مناسب | غير مناسب |

|---|---|

| القواعد معقدة أو غير معروفة (التعرف على الصور، التنبؤ بالأسعار) | القاعدة بسيطة وواضحة (حساب الضريبة) |

| توجد بيانات كافية وممثلة | لا توجد بيانات، أو البيانات منحازة |

| الخطأ أحياناً مقبول | كل خطأ كارثي ولا يمكن تفسيره |

الأنواع الثلاثة

| النوع | البيانات | المهمة | أمثلة |

|---|---|---|---|

| بإشراف (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}")
اختبر فهمك