طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 244 · علم البيانات للويب
الدرس 19 · الوحدة 10: تصميم نماذج تعلم الآلة

مدخل تعلم الآلة: المتغيرات والهدف

من وصف الماضي إلى التنبؤ بالمستقبل: ما المتغيّرات، وما الهدف؟ ⏱ نحو 40 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تفرّق بين البرمجة التقليدية وتعلّم الآلة.
  • تحدّد المتغيّرات والهدف والنموذج.
  • تميّز الانحدار من التصنيف.
  • تفصل X عن y دون تسريب الهدف.

١من الوصف إلى التنبؤ

حتى الآن وصفنا الماضي: كم زائرًا؟ أي صفحة أسوأ؟ تعلّم الآلة ينقلنا خطوة: التنبؤ بالمستقبل. بدل أن نكتب القاعدة بأيدينا، نعطي الحاسوب أمثلةً سابقة فيتعلّم منها النمط، ثم يطبّقه على حالةٍ جديدة.

البرمجة التقليديةتعلّم الآلة
المدخلبيانات + قاعدةبيانات + أمثلة بالإجابات
المخرجإجابةقاعدة (نموذج) يُطبَّق لاحقًا
المثالif زيارات>1000: مهمّأعطِ أمثلة «مهمّ/لا»، فيتعلّم الحدّ

٢المصطلحات الثلاثة

كل مسألة تعلّمٍ مُشرَف تتكوّن من:

المصطلحالمعنىمثال (التنبؤ بالشراء)
المتغيّرات Features (X)المدخلات التي نعرفهامدة الجلسة، عدد الصفحات
الهدف Target (y)ما نريد التنبؤ بههل اشترى؟ (نعم/لا)
النموذج Modelما يتعلّم العلاقة X←yانحدار، تصنيف…
main.py
import pandas as pddf = pd.DataFrame({    "seconds": [8, 120, 5, 240, 40, 180],    "pages":   [1, 4, 1, 6, 2, 5],    "bought":  [0, 1, 0, 1, 0, 1],})# فصل المتغيّرات عن الهدفX = df[["seconds", "pages"]]   # ما نعرفهy = df["bought"]               # ما نتنبّأ بهprint("شكل X:", X.shape, "| شكل y:", y.shape)
Shell×
>>> %Run main.py
شكل X: (6, 2) | شكل y: (6,)
>>>

القاعدة الذهبية: X لا يحوي الهدف أبدًا. لو وضعت bought داخل X، لـ«غشّ» النموذج وتعلّم لا شيء مفيد.

٣نوعا التعلّم المُشرَف

النوعالهدفأمثلة ويب
الانحدار Regressionرقم متّصلكم دقيقة سيبقى؟ كم سينفق؟
التصنيف Classificationفئةهل سيغادر؟ هل سيشتري؟

الفرق في نوع الهدف: رقمٌ ← انحدار (الدرس 21)، فئةٌ ← تصنيف (الدرس 22). الخطوات بينهما متشابهة، وهذا ما يجعل scikit-learn قويًّا: واجهةٌ واحدة لكل النماذج.

توقّع وتحقّق

المدخلات التي نعرفها تسمّى:

ما نريد التنبؤ به يسمّى:

التنبؤ بفئة (نعم/لا) هو:

يجب ألّا يحوي X:

الخلاصة

تحدٍّ برمجي: افصل X و y

متوسط

من الجدول، افصل المتغيّرات (عمودا minutes وclicks) عن الهدف (left)، واطبع شكل X وعدد عناصر y.

المطلوب:
  • أنشئ X بالعمودين، وy بعمود الهدف.
  • اطبع X.shape ثم len(y).

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

main.py
import pandas as pddf = pd.DataFrame({    "minutes": [1, 5, 2, 8, 3],    "clicks":  [2, 9, 3, 14, 5],    "left":    [1, 0, 1, 0, 1],})# افصل X (minutes, clicks) عن y (left) واطبع X.shape ثم len(y)
المطلوب×
(5, 2)
5
💡 تلميح 1
X = df[["minutes", "clicks"]] وy = df["left"].
💡 تلميح 2
ثم X.shape وlen(y).

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

main.py
import pandas as pddf = pd.DataFrame({    "minutes": [1, 5, 2, 8, 3],    "clicks":  [2, 9, 3, 14, 5],    "left":    [1, 0, 1, 0, 1],})X = df[["minutes", "clicks"]]y = df["left"]print(X.shape)print(len(y))
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس