وحدة 6 / 11

بناء النموذج: تعريف المشكلة واختيار الخوارزمية وتقسيم التدريب/الاختبار

المكاسب:

  • القدرة على تحديد نوع المشكلة (التصنيف، الانحدار، التجميع) ومعايير النجاح وفقا للتكلفة الحقيقية للوظيفة
  • القدرة على تقسيم البيانات بأمانة (دون لمس مجموعة الاختبار؛ بتسلسل زمني في السلسلة الزمنية) وإنشاء أساس تقييم خالي من التسرب
  • القدرة على اختيار نموذج قابل للتفسير من خلال البدء بخط أساس بسيط وإضافة التعقيد فقط عندما يستحق ذلك.

لقد قمنا حتى الآن بجمع البيانات وتنظيفها واستكشافها وإنتاج الميزات. والآن نأتي إلى العمل الحقيقي، وهو بناء نموذج. النموذج عبارة عن بنية رياضية تتعلم نمطًا من البيانات وتنتج تنبؤات لمواقف جديدة. لكن الجزء الأكثر أهمية في بناء النموذج ليس الكود نفسه، بل القراران اللذان يسبقانه: تحديد المشكلة الصحيحة وتقسيم البيانات بشكل صحيح. يعد الذكاء الاصطناعي مستشارًا قويًا في اختيار الخوارزميات وكتابة التعليمات البرمجية وضبط المعلمات؛ ولكن الأمر متروك للفرد ليقرر ما يجب التنبؤ به وما يعنيه النجاح. لن تنجح المشكلة غير المحددة حتى مع النموذج المكتوب بشكل مثالي.

تعريف المشكلة أولاً: ماذا نتوقع

تبدأ كل مهمة تصميم بسؤال، وهذا السؤال يحدد نوع النموذج. التصنيف - الإخراج عبارة عن فئة: "هل سيغادر هذا العميل أم سيبقى؟"، "هل هذه المعاملة مزيفة؟". الانحدار (في الانحدار الإنجليزي - الناتج رقم): "كم تبلغ قيمة هذا المنزل؟"، "كم عدد الطلبات التي ستأتي الشهر المقبل؟". التجميع (تقسيم البيانات غير المسماة إلى مجموعات طبيعية): "ما عدد الشرائح الطبيعية التي ينقسم إليها عملائي؟".

الجزء الثاني من بيان المشكلة هو معيار النجاح: ماذا يعني أن يكون هذا النموذج "جيدًا"؟ في نموذج الاحتيال، يعد فقدان المحتال أكثر تكلفة بكثير من حظر عميل صادق عن طريق الخطأ؛ لذلك، لا تأتي في المقدمة "الدقة العامة" بل "معدل القبض على المحتالين". إذا لم تحدد هذا المعيار من البداية، مع مالك العمل، فسوف ينتهي بك الأمر إلى نموذج "دقيق للغاية" لا يعمل (سنتعمق في المقاييس في الوحدة 7).

تنبيه: قد تكون "الدقة" مضللة. إذا كانت 10 من أصل 1000 معاملة احتيالية، فإن النموذج الغبي الذي يقول "لا شيء احتيالي" سيعطي دقة بنسبة 99٪ ولكنه لن يمسك بأي محتال. اختر معايير النجاح على أساس التكلفة الحقيقية للمشكلة.

التدريب/تقسيم الاختبار: الفحص الصادق للنموذج

إن اختبار النموذج بالبيانات التي تعلمها يشبه طرح نفس الأسئلة التي درسها في الامتحان على الطالب؛ يحصل على درجات عالية لكنه لا يظهر ما يعرفه حقًا. لذلك قمنا بتقسيم البيانات إلى قسمين (غالبًا ثلاثة):

  • مجموعة التدريب (مجموعة التدريب باللغة الإنجليزية، عادة 70-80٪): يتعلم النموذج على هذا.
  • مجموعة الاختبار (مجموعة الاختبار، عادة 20-30٪): النموذج لا يرى هذا على الإطلاق؛ يتم قياس الأداء الحقيقي هنا.
  • مجموعة التحقق من الصحة: ​​المجموعة المتوسطة المستخدمة لإعداد النموذج (أي المعلمة أفضل)؛ للحفاظ على مجموعة الاختبار "نظيفة".

القاعدة الأساسية: لا يتم لمس مجموعة الاختبار أبدًا أثناء التدريب. القياس، والترميز، واختيار الميزات - يتم تعلمها جميعًا ببساطة من مجموعة التدريب، ثم يتم تطبيقها على الاختبار (مبدأ التسرب من الوحدة 5). مجموعة الاختبار هي المرة الأولى التي يرى فيها النموذج العالم الحقيقي؛ إذا قمت بتشغيله مبكرًا جدًا، فلن تعرف أبدًا الأداء الحقيقي.

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

اختيار الخوارزمية: من البسيط إلى المعقد

الخطأ الأكثر شيوعًا للمبتدئين هو البدء بالنموذج الأكثر تعقيدًا. النهج الصحيح هو العكس: قم أولاً بإنشاء خط أساس بسيط. "خمن دائمًا فئة الأغلبية" في التصنيف؛ "تقدير المتوسط ​​دائمًا" في الانحدار. هذا النموذج الغبي يعطي خط الأساس؛ إذا لم يتمكن نموذجك الفعلي من اجتياز هذا، فهناك مشكلة. ثم انتقل إلى نماذج بسيطة وقابلة للتفسير.

نموذج

نوع المشكلة

نقطة قوية

الضعف

خط الأساس (الأغلبية/المتوسط)

على حد سواء

يعطي المعيار

لا يتعلم

الانحدار اللوجستي

التصنيف

بسيطة وقابلة للتفسير

العلاقة الخطية فقط

الانحدار الخطي

الانحدار

بسيطة وسريعة

الافتراض الخطي

شجرة القرار

على حد سواء

قابلة للتفسير

أذكار سهلة

غابة عشوائية

على حد سواء

قوي ودائم

أقل قابلية للتفسير

تعزيز التدرج (XGBoost وما إلى ذلك)

على حد سواء

قوي جدا

من الصعب ضبط، خطر الحفظ

القاعدة: اختر أبسط نموذج "جيد بما فيه الكفاية". تعد القدرة على التفسير أكثر قيمة من القوة في معظم سياقات الأعمال؛ من الأفضل تفسير رفض القرض "لأن نسبة الدين إلى الدخل مرتفعة" بدلاً من "لأن الصندوق الأسود قال ذلك".

ثلاث حالات صغيرة

الحالة 1 - تعريف غير صحيح للمشكلة. قام فريق ببناء نموذج تصنيف يعتمد على "هل العميل راضٍ" ولكنه اختار "الدقة" كمعيار للنجاح. في البيانات، كان 88% من العملاء راضين؛ حصل النموذج على دقة تبلغ 88% من خلال وصف الجميع بـ "الراضين" ولم يلتقط الأشخاص غير الراضين أبدًا - على الرغم من أن الهدف الحقيقي كان العثور عليهم. الدرس المستفاد: اختر معايير النجاح بناءً على الهدف الحقيقي.

الحالة 2 - تسرب الوقت في المقصورة. في مشروع التنبؤ بالطلب، تم تقسيم البيانات بشكل عشوائي. أعطى النموذج دقة بنسبة 93%، لكنه انهار في الإنتاج لأنه تنبأ أثناء التدريب بشهر يناير، ثم نوفمبر، مع بيانات ديسمبر، وكان يرى المستقبل. وعندما تحولنا إلى التقسيم الزمني، ارتفع الأداء الفعلي إلى 74%. الدرس الثاني: التقسيم الزمني في السلاسل الزمنية.

الحالة 3 - التعقيد غير الضروري. بدأ أحد المحللين مباشرة باستخدام شبكة عصبية عميقة، وقام بضبطها لأسابيع، وحصل على دقة تصل إلى 81%. ثم حصل أحد الزملاء على 80% مع 20 سطرًا من الانحدار اللوجستي - وهو أسرع بكثير وقابل للتفسير وأسهل في الصيانة. الدرس المستفاد: ابدأ بخط أساسي ونموذج بسيط، وأضف التعقيد عندما يستحق ذلك.

أربعة قوالب قابلة للنسخ

1) توضيح تعريف المشكلة:

دورك: مستشار النمذجة. ساعدني في تحديد هذه الوظيفة: "أريد تقليل تقلبات العملاء". اسألني ووضح: (1) هل هذا تصنيف أم تراجع، (2) ما هو المتغير المستهدف بالضبط وكيف ينبغي تحديده، (3) ما هي معايير النجاح ولماذا. القرار لي. تقوم بتقديم الأسئلة والخيارات.

2) حجرة التدريب/الاختبار الآمنة:

قم بتقسيم df الخاص بي إلى تدريب/اختبار 80%/20%. الحفاظ على التوزيع الطبقي (stratify).random_state=42. هذه ليست سلسلة زمنية (ملاحظات مستقلة). اطبع النسبة الصفية لكل مجموعة بعد القسمة. ما عليك سوى إعطاء رمز التقسيم لمجموعة الاختبار دون تطبيق أي تحويل.

3) التقسيم الزمني للسلاسل الزمنية:

تعتمد البيانات على الوقت (عمود التاريخ: order_date). ليست عشوائية، قسّمها بترتيب زمني: أقدم 80% تدريب، وأحدث 20% اختبار. اطبع النطاق الزمني للتدريب والاختبار حتى أتمكن من التحقق من عدم تسرب المستقبل.

4) تحديد خط الأساس:

لدي مشكلة في التصنيف (الهدف: الاضطراب 0/1). قم أولاً بإنشاء خط أساس: قم بقياس دقة التدريب/الاختبار باستخدام DummyClassifier، الذي يتنبأ دائمًا بفئة الأغلبية. ثم قم بتدريب الانحدار اللوجستي البسيط وقارن ما إذا كان يتفوق على خط الأساس. اعرض مقاييس الاثنين جنبًا إلى جنب.

موجه ضعيف / موجه قوي

حث ضعيف:

قم ببناء أفضل نموذج باستخدام هذه البيانات.

"الأفضل" غير محدد؛ لا يوجد نوع مشكلة، ولا هدف، ولا معايير نجاح، ولا استراتيجية تقسيم. يقوم الذكاء الاصطناعي بإنشاء نمط عشوائي، ربما يكون متسربًا.

مطالبة قوية:

دورك: مساعد النمذجة. المشكلة: التصنيف، "التغيير" المستهدف (0/1)، هناك خلل في الطبقة (~ 12٪ تقلب). معيار النجاح: إن تذكر أولئك الذين يغضبون هو الأولوية. مراقبة البيانات المستقلة (وليست سلسلة زمنية). المهمة: (1) تقسيم طبقي بنسبة 80/20%، (2) خط الأساس DummyClassifier، (3) الانحدار اللوجستي، جميع التحولات في خط الأنابيب وتعلمها فقط من التدريب. لا تلمس مجموعة الاختبار قبل التقسيم.

هنا يتضح نوع المشكلة وعدم التوازن والمعيار وقياس التسرب.

الأخطاء الشائعة

  • عدم اختيار معايير النجاح وفق الهدف الحقيقي. إن "الدقة" في البيانات غير المتوازنة تعتبر مضللة؛ إذا كنت ترغب في الاستيلاء على فئة الأقلية، يأتي الاستدعاء في المقدمة.
  • لمس مجموعة الاختبار أثناء التدريب. يعد إجراء القياس/التشفير قبل التقسيم أمرًا متسربًا ويخفي الأداء الحقيقي.
  • تقسيم عشوائي في السلاسل الزمنية. النموذج يرى المستقبل، وينهار في الإنتاج؛ التقسيم الزمني ضروري.
  • القفز إلى نموذج معقد دون إنشاء خط أساس. بدون معايير لا يمكنك معرفة ما إذا كان النموذج جيدًا أم لا.
  • إهمال قابلية التفسير. في قرارات العمل، غالبًا ما يكون النموذج البسيط القابل للتفسير أكثر قيمة من الصندوق الأسود.
نصيحة: قبل البدء في بناء نموذج، اكتب جملة واحدة: "سيتنبأ هذا النموذج بـ _____، وسيتم قياس نجاحه بالمقياس _____، لأن التكلفة الحقيقية للمهمة هي _____." إذا لم تتمكن من ملء هذه الجملة، فأنت لست جاهزًا لكتابة التعليمات البرمجية بعد.

باختصار

الجزء الأكثر أهمية في بناء النموذج ليس الكود، بل القرارات التي تسبقه: تحديد المشكلة الصحيحة (التصنيف أو الانحدار، ما هو الهدف، ما هو معيار النجاح) وتقسيم البيانات بشكل عادل (دون لمس مجموعة الاختبار؛ بتسلسل زمني). ابدأ دائمًا بخط أساسي بسيط وأضف التعقيد فقط عندما يستحق ذلك؛ تُقدر قابلية التفسير على حساب القوة في معظم سياقات الأعمال. يعد الذكاء الاصطناعي مستشارًا قويًا في اختيار الخوارزميات والتعليمات البرمجية، لكن الإنسان هو الذي يقرر ما تتوقعه ولماذا.

مهمة التطبيق

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

قائمة مرجعية

  • [ ] هل قمت بتحديد نوع المشكلة (التصنيف/الانحدار) والهدف بوضوح؟
  • [ ] هل قمت باختيار معايير النجاح بناء على التكلفة الفعلية للوظيفة؟
  • [ ] هل تركت مجموعة الاختبار دون مساس أثناء التدريب؟
  • [ ] إذا كانت سلسلة زمنية فهل قمت بتقسيمها زمنياً؟
  • [ ] هل قمت بوضع خط أساس قبل الانتقال إلى النموذج المعقد؟