تسليم المشروع النهائي
هذا هو القسم الأخير من المقرر، ولا يتضمن خوارزمية جديدة. فالأسبوع 11 في الخطة هو التسليم النهائي (final submission) لمشروع فريقك: الشيفرة (code)، وفيديو، والمقترح (proposal)، والعرض التقديمي (presentation)، وشعار (logo)، مع واجهة مستخدم (user interface) إضافية. تعرض هذه الجلسة الإرشادية القصيرة كل مخرج (deliverable) من مخرجات التسليم، وتبين كيف بنت مراحل المشروع (project milestones) في الأسابيع من 1 إلى 10 معظمه بالفعل، وتسمي الموضوعات التي تتركها الخطة لتستكشفها بعد المقرر.
الأهداف
في نهاية هذا القسم يجب أن تكون قادرا على:
- سرد المخرجات الخمسة المطلوبة للتسليم النهائي، والمخرج الإضافي الواحد.
- تحديد مرحلة الأسبوع التي أنتجت كل جزء من تسليمك.
- مراجعة تقدم فريقك مقابل قائمة التسليم (submission checklist)، وتخطيط العمل المتبقي.
- تخطيط فيديو للمشروع مدته 5 دقائق بالضبط.
- تسمية الموضوعات الثلاثة التي تقترحها الخطة للدراسة بعد المقرر: SVM وGBMs والانحدار الخطي المتعدد (multiple linear regression).
موقع الدرس من المقرر
ليس للأسبوع 11 في الخطة دفتر (notebook) ولا مجموعة بيانات (dataset). وله جزءان:
- التسليم النهائي للمشروع. تذكر الخطة ستة بنود (items): شيفرة المشروع في مستودع (repository) على GitHub، وفيديو للمشروع مدته 5 دقائق، ومقترح المشروع، والعرض التقديمي للمشروع، وشعار المشروع، وإضافة إلى ذلك واجهة مستخدم للمشروع (للهاتف المحمول أو الويب أو سطح المكتب).
- مسابقة المقرر (course competition). تختار الخطة أفضل المشاريع فائزة في مسابقات المقرر.
انتهى كل أسبوع سابق بمرحلة للمشروع. ولم تكن هذه المراحل واجبات منفصلة: فقد أنتجت كل مرحلة منها جزءا من التسليم النهائي. واليوم تجمع هذه الأجزاء معا.
| الجزء | ما نفعله | الزمن |
|---|---|---|
| 1 | المخرجات الستة | 15 دقيقة |
| 2 | من مراحل الأسابيع إلى التسليم | 10 دقائق |
| 3 | المسابقة وموضوعات المستقبل | 5 دقائق |
| 4 | تمرين: المراجعة النهائية لفريقك | 30 دقيقة |
الجزء 1: المخرجات الستة
قائمة التسليم
| # | المخرج | ما تسلمه | مطلوب |
|---|---|---|---|
| 1 | شيفرة المشروع | مستودع على GitHub يضم دفترك وبياناتك | نعم |
| 2 | فيديو المشروع | فيديو مدته 5 دقائق | نعم |
| 3 | مقترح المشروع | المقترح الذي كتبه فريقك في الأسبوع 2 | نعم |
| 4 | العرض التقديمي للمشروع | الشرائح التي عرضتها في الأسابيع من 8 إلى 10 | نعم |
| 5 | شعار المشروع | شعار للمشروع | نعم |
| 6 | واجهة المستخدم للمشروع | واجهة للهاتف المحمول أو الويب أو سطح المكتب | إضافي |
1. شيفرة المشروع في مستودع على GitHub
المستودع هو المكان الذي يتحقق فيه القارئ من أن نتائجك حقيقية. ويجب أن يضم:
- الدفتر، أو الدفاتر، التي تعمل من أولها إلى آخرها: تحميل البيانات في الأسبوع 1، والاستكشاف والتنظيف في الأسبوع 3، والخصائص (features) والمتغير الهدف (target variable) في الأسبوع 4، والنماذج في الأسابيع من 5 إلى 7.
- مجموعة البيانات، أو رابطا إليها إذا كانت أكبر من أن ترفع.
- ملف README قصيرا: المشكلة، ومجموعة البيانات، وطريقة تشغيل الدفتر، ودرجة (score) كل نموذج على مجموعة الاختبار (test split) نفسها.
قبل أن ترفع الشيفرة، أعد بدء بيئة التشغيل (runtime) وشغل كل خلية من البداية. ويجب أن يكون كل رقم في ملف README وفي شرائحك وفي الفيديو رقما يطبعه الدفتر.
2. فيديو المشروع، 5 دقائق
يروي الفيديو قصة المشروع لشخص لم يحضر عرضك. والدقائق الخمس تساوي 300 ثانية، لذا خطط لزمن كل جزء قبل أن تسجل. ويبني المثال المحلول أدناه خطة من هذا النوع.
3. مقترح المشروع
كتبته في الأسبوع 2: الفكرة أو الورقة البحثية، ومجموعة البيانات بصفوفها وأعمدتها وهدفها (target)، والرسوم البيانية الأولى. اقرأه مرة أخرى وتحقق من أنه ما زال يصف المشروع الذي بنيته. وإذا تغيرت مجموعة البيانات أو الهدف منذ الأسبوع 2، فاذكر ذلك في المقترح.
4. العرض التقديمي للمشروع
عرضت المشروع وناقشته في الأسابيع من 8 إلى 10. أضف إلى الشرائح ما تعلمته من النقاش، ودرجاتك النهائية. وحافظ على بنية المناقشات: الفكرة، والبيانات، والخصائص والهدف، والنموذج وطريقة تقييمه، وما كنت ستحسنه.
5. شعار المشروع
الشعار هو البند الجديد في الأسبوع 11: لم تنتجه أي مرحلة سابقة. استخدمه في الشريحة الأولى من العرض التقديمي، وفي بداية الفيديو، وفي أعلى ملف README، لتبدو الثلاثة مشروعا واحدا.
6. إضافة: واجهة مستخدم للمشروع
واجهة للهاتف المحمول أو الويب أو سطح المكتب تتيح للمستخدم تجربة النموذج. وهي غير مطلوبة، لكنها تعرض النموذج وهو يعمل على مدخلات جديدة، وهذا بالضبط ما تحتاج إليه تجربة حية (demo) قوية في الفيديو.
الجزء 2: من مراحل الأسابيع إلى التسليم
مراحل الأسابيع من 1 إلى 10
| الأسبوع | موضوع القسم | مرحلة المشروع | المخرج الذي تغذيه |
|---|---|---|---|
| 1 | عمليات Pandas المتقدمة | فريق من 3 أعضاء مع فكرة مشروع، أو من 2 مع ورقة بحثية | كلها |
| 2 | Matplotlib وSeaborn | مقترح المشروع أو الورقة البحثية | 3 المقترح |
| 3 | الانحدار الخطي | استكشاف البيانات وتنظيفها | 1 الشيفرة |
| 4 | الانحدار اللوجستي | استخراج الخصائص وتحديد المتغير الهدف | 1 الشيفرة |
| 5 | أقرب الجيران | تنفيذ نموذج تعلم الآلة | 1 الشيفرة |
| 6 | أشجار القرار والغابة العشوائية | تنفيذ نموذج تعلم الآلة | 1 الشيفرة |
| 7 | Naive Bayes | تنفيذ نموذج تعلم الآلة | 1 الشيفرة |
| 8 | التجميع بخوارزمية k-means | العروض والمناقشات | 4 العرض التقديمي، 2 الفيديو |
| 9 | التوصيات المعتمدة على المحتوى | العروض والمناقشات | 4 العرض التقديمي، 2 الفيديو |
| 10 | تحليل المشاعر | العروض والمناقشات | 4 العرض التقديمي، 2 الفيديو |
| 11 | التسليم النهائي | الشيفرة، والفيديو، والمقترح، والعرض التقديمي، والشعار | كلها |
قائمة التسليم التفاعلية
تقسم القائمة المخرجات الخمسة المطلوبة إلى 13 بندا، وتعطي كل بند الأسبوع الذي تنتجه مرحلته:
| المخرج | البنود | الأسابيع |
|---|---|---|
| 1 الشيفرة | تحميل مجموعة البيانات باستخدام pandas؛ استكشاف البيانات وتنظيفها؛ اختيار الخصائص والهدف؛ تنفيذ النماذج (KNN والأشجار وNaive Bayes)؛ رفع الشيفرة إلى مستودع على GitHub | 1؛ 3؛ 4؛ 5 إلى 7؛ 11 |
| 2 الفيديو | التدرب على القصة في العروض؛ تسجيل فيديو مدته 5 دقائق | 8 إلى 10؛ 11 |
| 3 المقترح | فريق مع فكرة أو ورقة بحثية؛ كتابة المقترح مع الرسوم البيانية؛ مراجعة المقترح وإرفاقه | 1؛ 2؛ 11 |
| 4 العرض التقديمي | عرض المشروع ومناقشته؛ تجهيز الشرائح النهائية | 8 إلى 10؛ 11 |
| 5 الشعار | تصميم الشعار | 11 |
وواجهة المستخدم الاختيارية هي البند رقم 14، خارج البنود الـ13.
افتح أداة قائمة التسليم بملء الشاشة. اضغط تشغيل لتتبع فريقا ملتزما بالخطة من الأسبوع 1 إلى الأسبوع 11 وتشاهد حلقة التقدم تمتلئ، أو ضع علامة على بنود فريقك.
مثال محلول 1: كم أنجز الفريق بنهاية الأسبوع 10؟
سؤال. التزم فريق بكل مرحلة من الأسبوع 1 إلى الأسبوع 10. كم بندا من البنود الـ13 المطلوبة أنجزه بالفعل عند بداية الأسبوع 11؟
الخطوة 1: البنود المنجزة في الأسابيع من 1 إلى 10. راجع الجدول أعلاه بندا بندا، واحتفظ بكل بند يكون آخر أسبوع له هو 10 أو ما قبله:
| الأسبوع | البنود المنجزة |
|---|---|
| 1 | تحميل مجموعة البيانات باستخدام pandas؛ فريق مع فكرة أو ورقة بحثية |
| 2 | كتابة المقترح مع الرسوم البيانية |
| 3 | استكشاف البيانات وتنظيفها |
| 4 | اختيار الخصائص والهدف |
| 7 | تنفيذ النماذج (KNN والأشجار وNaive Bayes) |
| 10 | التدرب على القصة في العروض؛ عرض المشروع ومناقشته |
فهذه 2 + 1 + 1 + 1 + 1 + 2 = 8 بنود. ولا ينهي الأسبوعان 5 و6 أي بند وحدهما: فبند النماذج يمتد من الأسبوع 5 إلى الأسبوع 7، ويكتمل عندما يكتمل النموذج الثالث.
الخطوة 2: النسبة. 8 من 13 بندا تساوي 8 / 13 = 0.6154، لذا تعرض الحلقة 62%.
الخطوة 3: ما يتبقى للأسبوع 11. 13 - 8 = 5 بنود: رفع الشيفرة إلى مستودع على GitHub، وتسجيل الفيديو ومدته 5 دقائق، ومراجعة المقترح وإرفاقه، وتجهيز الشرائح النهائية، وتصميم الشعار.
بنت المراحل ما يقارب ثلثي التسليم. فالأسبوع 11 للإنهاء، لا للبدء.
مثال محلول 2: خطة فيديو مدته 5 دقائق
سؤال. قسم مدة الفيديو، وهي 5 دقائق، إلى خمسة أجزاء تتبع بنية عرضك التقديمي.
الخطوة 1: التحويل. 5 دقائق = 5 x 60 = 300 ثانية.
الخطوة 2: إعطاء كل جزء زمنه. النماذج هي جوهر المشروع، لذا تأخذ الجزء الأطول:
| الجزء | الثواني | من | إلى |
|---|---|---|---|
| المشكلة والبيانات | 45 | 0:00 | 0:45 |
| التنظيف والخصائص والهدف | 60 | 0:45 | 1:45 |
| النماذج ودرجاتها | 90 | 1:45 | 3:15 |
| تجربة حية: الدفتر أو الواجهة | 60 | 3:15 | 4:15 |
| ما تعلمته، وما يأتي بعد ذلك | 45 | 4:15 | 5:00 |
الخطوة 3: التحقق من المجموع. 45 + 60 + 90 + 60 + 45 = 300 ثانية، أي 5 دقائق بالضبط. ويبدأ كل جزء حيث ينتهي الجزء الذي قبله.
الجزء 3: المسابقة وموضوعات المستقبل
مسابقة المقرر
تختار الخطة أفضل المشاريع فائزة في مسابقات المقرر. والتسليم الكامل الصادق هو أساس المشروع القوي:
- سلمت المخرجات الخمسة المطلوبة كلها، والواجهة مكافأة إضافية فوقها.
- يستطيع كل عضو في الفريق شرح كل خطوة، لا الجزء الخاص به فقط.
- الأرقام في الشرائح وملف README والفيديو هي الأرقام التي يطبعها الدفتر.
- يذكر العرض التقديمي شيئا واحدا لم ينجح، وما تعلمته منه.
نقاط إضافية لاستكشافها في المستقبل
تسمي الخطة ثلاثة موضوعات لاستكشافها بعد المقرر. وكل منها امتداد لشيء أنجزته بالفعل:
| الموضوع | يبني على | الفئة (class) في scikit-learn |
|---|---|---|
| الانحدار الخطي المتعدد | الأسبوع 3: الانحدار الخطي مع أكثر من خاصية واحدة؛ فدفتر الأسبوع 3 يتنبأ بالسعر من خمس خصائص بالفعل | LinearRegression |
| SVM (آلات المتجهات الداعمة، support vector machines) | الأسابيع من 4 إلى 7: مصنف (classifier) آخر يعمل بنمط fit وpredict وscore نفسه | SVC |
| GBMs (آلات التعزيز التدرجي، gradient boosting machines) | الأسبوع 6: طريقة أخرى لدمج أشجار قرار كثيرة في نموذج واحد | GradientBoostingClassifier |
وإذا جربت أحدها على بيانات مشروعك، فقارنه بنماذجك الأخرى على مجموعة الاختبار نفسها، كما فعلت في الأسابيع من 5 إلى 7.
الأخطاء الشائعة
- رفع دفتر شغلت خلاياه بغير ترتيبها، فلا تطابق نتائجه المطبوعة ما يحسبه.
- درجات في الفيديو أو الشرائح تختلف عن الدرجات في الدفتر.
- فيديو أطول أو أقصر كثيرا من 5 دقائق لأن زمن أجزائه لم يحسب قط.
- مقترح ما زال يصف مجموعة البيانات أو الهدف كما كانا في الأسبوع 2 بعد أن تغير المشروع.
- ترك الشعار، وهو البند الوحيد الذي لم تنتجه أي مرحلة سابقة، إلى الساعة الأخيرة.
الخلاصة
- للتسليم النهائي خمسة مخرجات مطلوبة: الشيفرة في مستودع على GitHub، وفيديو مدته 5 دقائق، والمقترح، والعرض التقديمي، والشعار. وواجهة المستخدم إضافية.
- أنتجت مراحل الأسابيع من 1 إلى 10 معظمه: فالفريق الملتزم بالخطة يبدأ الأسبوع 11 وقد أنجز 8 من بنود القائمة الـ13.
- ينهي الأسبوع 11 خمسة بنود: رفع الشيفرة، وتسجيل الفيديو، ومراجعة المقترح، وإكمال الشرائح، وتصميم الشعار.
- احسب زمن الفيديو بالثواني: 300 ثانية في المجموع.
- بعد المقرر، استكشف SVM وGBMs والانحدار الخطي المتعدد على بياناتك.
التمارين
نحو 30 دقيقة. حاول حل كل مهمة قبل أن تقرأ إجابتها في نهاية الصفحة.
التمرين 1: تحديد أسبوع المرحلة (نحو 5 دقائق)
لكل عمل مما يلي، اذكر الأسبوع الذي أنتجته مرحلته:
- تسمية المتغير الهدف لمشروعك.
- اختيار K لنموذج KNN بحلقة الكوع (elbow loop).
- مقارنة درجة التدريب (training score) ودرجة الاختبار (test score) لشجرة قرار.
- الاختيار بين
MultinomialNBوGaussianNBلخصائصك. - عرض فكرتك في جملتين أو ثلاث، وتسمية مجموعة البيانات.
التمرين 2: حساب زمن فيديو (نحو 5 دقائق)
خطط فريق لأربعة أجزاء من فيديو: 30 ثانية، و75 ثانية، و105 ثوان، و50 ثانية. والجزء الخامس والأخير هو التجربة الحية.
- كم ثانية تتبقى للتجربة الحية إذا كان يجب أن تكون مدة الفيديو 5 دقائق بالضبط؟
- في أي وقت، بالدقائق والثواني، تبدأ التجربة الحية؟
التمرين 3: المراجعة النهائية لفريقك (نحو 20 دقيقة)
- افتح أداة قائمة التسليم وضع علامة على كل بند أنجزه فريقك فعلا.
- اكتب البنود التي ما زالت ناقصة.
- أعط كل بند ناقص مسؤولا واحدا في الفريق وتاريخا قبل الموعد النهائي للتسليم.
- اكتب خطتك الخاصة لفيديو من 5 أجزاء، وتحقق من أن مجموع الأجزاء 300 ثانية.
الإجابات
الإجابة 1
| العمل | الأسبوع | المرحلة |
|---|---|---|
| تسمية المتغير الهدف | 4 | استخراج الخصائص وتحديد المتغير الهدف |
| اختيار K لنموذج KNN بحلقة الكوع | 5 | تنفيذ النموذج، باستخدام KNN |
| درجة التدريب مقابل درجة الاختبار لشجرة | 6 | تنفيذ النموذج، باستخدام أشجار القرار والغابة العشوائية |
MultinomialNB أو GaussianNB | 7 | تنفيذ النموذج، باستخدام Naive Bayes |
| الفكرة ومجموعة البيانات في جمل قليلة | 2 | مقترح المشروع أو الورقة البحثية |
الإجابة 2
- تستهلك الأجزاء الأربعة 30 + 75 + 105 + 50 = 260 ثانية، لذا تحصل التجربة الحية على 300 - 260 = 40 ثانية.
- تبدأ التجربة الحية بعد 260 ثانية، أي بعد 4 دقائق و20 ثانية، عند 4:20، وتنتهي عند 5:00.
الإجابة 3
لا توجد إجابة واحدة: فالأمر يعتمد على فريقك. وللمرجعية، يبدأ الفريق الذي التزم بكل مرحلة الأسبوع 11 وقد أنجز 8 من البنود الـ13 المطلوبة، والبنود المتبقية، وعددها 5، هي: الشيفرة المرفوعة إلى المستودع، والفيديو، والمقترح بعد مراجعته، والشرائح النهائية، والشعار. وأي بند ناقص آخر يأتي من مرحلة سابقة، فأعطه مسؤولا أولا. وتكون خطة الفيديو صحيحة عندما يكون مجموع أجزائها 300 ثانية بالضبط.