تأطير المسألة
درس 1 من 8
1تأطير المسألة
الصورة الكبيرةقبل أي نموذج، اكتب جملة واحدة: ماذا أتوقّع، من أي مدخلات، وكيف أعرف أنني نجحت. أغلب المشاريع التي تفشل في تعلّم الآلة تفشل هنا، لا في اختيار الخوارزمية.
ماذا تشاهد في الرسم: حل لا يتعلّم شيئًا ويقول «كل الطلبات سليمة» يحصل على دقة 94% ويكتشف صفرًا من 60 حالة احتيال. هذا هو الرقم الذي يجب أن يتجاوزه أي نموذج بوضوح، وهو أيضًا ما يكشف أن الدقة قد تكون المقياس الخطأ.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
قبل أن تختار أداة، اعرف نوع السؤال. «هل هذه الرسالة احتيال؟» سؤال نعم أو لا. «كم سيكون سعر البيت؟» سؤال عن رقم. «أي العملاء يتشابهون؟» سؤال بلا جواب جاهز. ولكل نوع طريقة. ثم تسأل: كيف سأعرف أن الجواب جيد؟
التصنيف classification يتوقع فئة، والانحدار regression يتوقع قيمة متصلة، وكلاهما تعلّم مُشرف بأمثلة معنونة. والتجميع clustering تعلّم غير مُشرف. قبل أي نموذج تحدد الهدف target والسمات والمقياس وخط الأساس الساذج الذي يجب أن تتفوق عليه.
قبل أن تبدأ
🧮البيانات والجداول
أنهيت مرحلة البيانات، فتقرأ جدولًا بـ pandas وتعرف أن الصف عيّنة والعمود سمة.
⚖️القاعدة الأساس
تعرف من درس الاحتمال لماذا تخدع دقة 99% على فئة نادرة.
الفكرة الجوهرية
قبل أي نموذج تحتاج ثلاثة أشياء مكتوبة: نوع المخرج، والرقم الذي يحقّقه حل لا يتعلّم شيئًا، وتكلفة كل خطأ. في هذا الدرس تبنيها بالترتيب، ثم ترى متى تكفي قاعدة بسيطة بدل النموذج.
1نوع المخرج يحدّد المسألة
أول سؤال: ماذا يخرج من الحل؟ إذا كان فئة فهي مسألة تصنيف، وإذا كان رقمًا فهي انحدار، وإذا لم يكن هناك جواب صحيح معروف فهي تجميع.
انظر إلى الرسم: سؤالان فقط يوصلانك إلى نوع المسألة. سؤال «هل هذا الطلب احتيال؟» يسلك الطريق المضيء إلى التصنيف.
«هل هذا الطلب احتيال؟» مخرجه نعم أو لا، فهو تصنيف. «كم سيدفع العميل؟» مخرجه رقم، فهو انحدار. «ما المجموعات الطبيعية في عملائنا؟» بلا جواب صحيح معروف، فهو تجميع. نوع المخرج يقرّر كل شيء بعده: الخوارزمية، والمقياس، وشكل البيانات.
حتى النجوم من 1 إلى 5 قد تعاملها كفئات. وفي التجميع تكون النتيجة فرضية يتحقّق منها إنسان، لا حقيقة.
2خط الأساس في التصنيف
خط الأساس الساذج هو نتيجة حل لا يتعلّم شيئًا. في التصنيف هذا الحل يتنبّأ دائمًا بالفئة الأكثر تكرارًا.
عندنا 1000 طلب، منها 60 احتيالًا. احسب ماذا يحقّق حل «كل الطلبات سليمة».
قبل أي نموذج، احسب نتيجة حل لا يتعلّم شيئًا. في التصنيف: تنبّأ دائمًا بالفئة الأكثر تكرارًا.
from collections import Counter
labels = ["ok"] * 940 + ["fraud"] * 60
counts = Counter(labels)
majority = counts.most_common(1)[0][0]
accuracy = counts[majority] / len(labels)
print("majority class:", majority)
print(f"baseline accuracy: {accuracy:.1%}")
حل يقول «كل الطلبات سليمة» يحصل على 94%. أي نموذج تبنيه يجب أن يتجاوز هذا الرقم بوضوح، وإلا فأنت تدفع تكلفة نموذج مقابل لا شيء. ولاحظ أن هذا الحل لم يكتشف ولا حالة احتيال واحدة، وهذا يخبرك أن الدقة نفسها قد تكون المقياس الخطأ هنا.
3خط الأساس في الانحدار
في الانحدار الحل الساذج يتنبّأ بالمتوسط لكل صف. متوسط خطئه هو الرقم الذي يجب أن يتجاوزه أي نموذج.
في الانحدار، الحل الساذج هو التنبّؤ بالمتوسط لكل صف. احسب كم يخطئ في المتوسط، وهذا رقمك الذي يجب أن تتجاوزه.
import numpy as np
prices = np.array([310, 450, 280, 520, 390, 610, 330, 470], dtype=float)
predict_mean = np.full_like(prices, prices.mean())
mae = np.abs(prices - predict_mean).mean()
print(f"mean price: {prices.mean():.1f}")
print(f"baseline MAE: {mae:.1f}")
حل لا يعرف شيئًا عن الشقق يخطئ بـ92.5 ألفًا في المتوسط. نموذج يخطئ بـ85 ألفًا تحسّن بالكاد، ونموذج يخطئ بـ30 ألفًا تحسّن حقيقي. بدون هذا الرقم، «خطأ 85 ألفًا» لا يقول لك هل هو جيد أم سيئ.
انظر إلى الرسم: نموذج خطؤه 85 ألفًا قريب جدًا من حل لا يعرف شيئًا عن الشقق. أما نموذج خطؤه 30 ألفًا فتحسّن حقيقي.
4تكلفة الخطأ تختار المقياس
الأخطاء ليست متساوية. لذلك تكتب المقياس قبل الكود، فبعد رؤية النتائج ستميل إلى المقياس الذي يجمّلها.
تفويت احتيال يكلّف مالًا، وإيقاف طلب سليم يكلّف عميلًا غاضبًا. التكلفتان غير متساويتين، وهذا ما سيحدّد لاحقًا أي مقياس تختار وأين تضع العتبة.
في مسألة الاحتيال تفويت حالة أغلى غالبًا، فتطلب استدعاءً عاليًا عند دقة مقبولة. هذا قرار عمل قبل أن يكون قرارًا تقنيًا.
5متى تكفي قاعدة
لا تحتاج تعلّم آلة عندما يكتب خبير قاعدة واضحة في أسطر، أو عندما لا توجد بيانات سابقة بالجواب الصحيح.
انظر إلى الرسم: الرسالة تمرّ على سؤالين، وما لا يطابق أيًّا منهما يذهب إلى القسم العام.
بعض المسائل التي تُطرح كمشاريع تعلّم آلة تحلّها قواعد بسيطة. جرّب القاعدة أولًا: إن كانت دقيقة بما يكفي، فهي أرخص وأوضح وأسهل في التصحيح من أي نموذج.
def route(message):
text = message.lower()
if "refund" in text or "استرجاع" in text:
return "billing"
if "password" in text or "كلمة المرور" in text:
return "account"
return "general"
for m in ["I want a refund", "نسيت كلمة المرور", "متى تفتحون؟"]:
print(route(m), "<-", m)
ثلاثة أسطر شرطية توجّه الرسائل. إن كانت تصيب في 90% من التذاكر الحقيقية، فقد وفّرت أسابيع من جمع البيانات والتدريب. تعلّم الآلة يستحق العناء عندما تكثر الحالات التي لا تستطيع القواعد وصفها، وعندما تملك أمثلة سابقة بالجواب الصحيح.
كيف يعمل، خطوة بخطوة: كيف تؤطّر فكرة غامضة كمسألة تعلّم آلة
حدّد العيّنة والمخرج: ماذا يمثّل الصف، وهل المخرج فئة أم رقم أم لا جواب صحيحًا له.
اختر المدخلات المتاحة لحظة التنبّؤ فقط، واستبعد أي عمود لا تعرفه إلا بعد الحدث.
احسب خط الأساس الساذج، مثل الفئة الأكثر تكرارًا أو المتوسط، واكتب رقمه.
اكتب المقياس قبل الشيفرة، واختره من تكلفة كل نوع من الخطأ لا مما يجمّل النتائج.
أعمق قليلًا
| السؤال التجاري | نوع المسألة | خط الأساس الساذج | مقياس مناسب |
|---|---|---|---|
| هل الطلب احتيال؟ | تصنيف ثنائي | «الكل سليم» | الاستدعاء عند دقة مقبولة |
| كم دقيقة سيستغرق التوصيل؟ | انحدار | متوسط المدد السابقة | MAE بالدقائق |
| إلى أي قسم تذهب هذه التذكرة؟ | تصنيف متعدد | القسم الأكثر تذاكر | الدقة لكل فئة |
| ما شرائح عملائنا؟ | تجميع | شريحة واحدة | قابلية التفسير ومراجعة بشرية |
مثال محلول
ثلاث أسئلة تحوّل فكرة غامضة مثل «نبغى نستخدم الذكاء الاصطناعي في الطلبات» إلى مسألة لها جواب يُقاس. جرّبها على مثال صغير قبل أن نسمّي الأشياء.
جرّب بلا كود
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| تعلّم الآلة يحسّن أي مسألة. | إذا كانت قاعدة يكتبها خبير في أسطر قليلة تكفي، فهي أرخص وأوضح وأسهل في الإصلاح من أي نموذج. |
| دقة 94% نتيجة ممتازة. | على بيانات فيها 94% طلبات سليمة يحصل عليها حل لا يتعلّم شيئًا. الرقم بلا خط أساس لا يعني شيئًا. |
| كل عمود في الجدول صالح كمدخل. | العمود الذي لا تعرفه إلا بعد الحدث، مثل تاريخ آخر تواصل مع الدعم في مسألة الإلغاء، يجعل النموذج ممتازًا في الاختبار وفاشلًا في الواقع. |
جرّب بنفسك
فريق يريد تحديد «مستوى رضا العميل» من 1 إلى 5 من نص تقييمه. أي تأطير هو الأنسب كبداية؟
وجود مخرج صحيح معروف في البيانات التاريخية (عدد النجوم) يجعلها مسألة تعلّم موجَّه. يمكن معاملة النجوم كفئات أو كرقم، والاختيار يعتمد على هل الخطأ بين 1 و5 أسوأ من الخطأ بين 4 و5. التجميع للحالات التي لا يوجد فيها جواب صحيح.
نموذجك لاكتشاف الاحتيال حصل على دقة 95%، ونسبة الاحتيال في البيانات 5%. ماذا تستنتج؟
حل يقول «لا احتيال أبدًا» يحصل على 95% بالضبط. الرقم وحده لا يميّز بين نموذج مفيد ونموذج لا يفعل شيئًا. هذا سبب حساب خط الأساس أولًا، وسبب أن الدرس القادم عن المقاييس يبدأ بهذه الحالة.
بطاقات مراجعة سريعة
تحقق من فهمك
مدير يطلب «نموذجًا يتنبّأ بالمبيعات». ما ثلاث أسئلة تطرحها قبل أن تفتح أي بيانات؟
أولًا: مبيعات ماذا، ولأي فترة، وبأي دقة زمنية (يومي لكل فرع؟ شهري للشركة؟)، وهذا يحدّد العيّنة والمخرج. ثانيًا: ماذا سيُفعل بالتنبّؤ ومتى، لأن هذا يحدّد المدخلات المتاحة لحظة التنبّؤ والخطأ المقبول. ثالثًا: كيف يُتنبّأ اليوم، لأن الطريقة الحالية مثل «مبيعات نفس الأسبوع من العام الماضي» هي خط الأساس الذي يجب أن تهزمه.
ما خط الأساس الساذج لمسألة انحدار مثل أسعار الشقق؟
التنبّؤ بالمتوسط لكل صف، ثم حساب متوسط الخطأ المطلق، وكان 92.5 ألفًا في مثال الدرس. كل نموذج يُقاس بمقدار تفوّقه على هذا الرقم.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.