38 Tweets 31 reads Nov 14, 2020
ثريد لكل الضايعين بمجال تعلم الآلة #MachineLearning
الثريد راح يتكلم بالجانب النظري والعملي وفيه قصة لطيفة عن هذا المجال 🤩بعد الانتهاء من قراءته راح تقدر تطبّق عمليًا وانت فاهم ايش تسوي 👍🏻
بسم الله👇🏻
تخيل اننا قمنا بجمع بيانات 1000 مريض مصاب بفايروس كورونا أو مصاب بفيروسات أخرى وهدفنا بناء نظام يقوم بالتنبؤ ماإذا كان المريض الجديد مُصاب بكورونا أو لا. في مجال تعلم الآلة نقوم اولاً بتدريب النموذج من خلال تزويده بالأعراض (features)التي يعاني منها المريض ونتيجة التشخيص (target
ثم بعدها نقوم بإختبار النموذج من خلال تزويده بأعراض المرضى فقط (features)ونطلب منه التنبؤ بنتيجة التشخيص(target) اي هل المريض مُصاب بكورونا أم لا؟
مثلًا في مرحلة التدريب هنا نرى أن كلا من الصف الثاني والثالث عانى المريضين من الحرارة ولكن بعد إضافة تشخيص بقية الأعراض ظهر لنا أن احدهما مصاب بكورونا(الصف 3) والآخر غير مصاب( الصف 2). بعد تدريب النموذج نقوم بتزويده بالأعراض فقط ونطلب منه التنبؤ بنتيجة التشخيص( الصف 8و9و10)
والآن دعنا ندخل إلى الجانب العملي في مجال تعلم الآلة ونشرح الخطوات الأساسية لبناء نموذج يتنبأ بقيمة الهدف (target)
عند تحليل مجموعة بيانات * بلغة البايثون ستحتاج إلى إستعمال
العديد من المكتبات التي سوف تسهل عليك عملية التحليل والتنبؤ.
ولأننا في هذا الثريد نريد ذكر الاساسيات بأبسط طريقة ممكن سوف أذكر لك أهم مكتبتين في عالم تعلم الآلة 👇
لو فتحت سابقًا أكواد تخص مجال تعلم الآلة فأجزم أنك رأيت مكتبة pandas كثيرًا.
هذه المكتبة الرائعة هي المسؤولة عن العديد من العمليات التي تخص مجموعة البيانات كقراءة مجموعة البيانات, عرض اسماء صفوفها, حذف عامود معين, والكثير من العمليات التي تساعدنا على فهم واستشكاف هضه البيانات
تشتهر مكتبة numpy بالتلاعب بالمصفوفات(arrays) مثل زيادة عناصر محدده او حذفها من المصفوفة والقيام بالعمليات الرياضية عليها.
.في مجال تعلم الآلة عندما نستدعي pandas فأننا نقوم بإستدعاء numpy أيضًا حيث ان كلا منهما مهم و مكمَل للآخر
بعد استدعائك للمكتبتين السابقتين. تحتاج إلى قراءة مجموعة البيانات التي تريد العمل عليها وتخزين هذه البيانات بمتغير (variable) . لاحقًا عندما تريد استدعاء مجموعة البيانات تقوم بكتابة اسم المتغير فقط.
والآن نأتي للجزء الذي سبب الحيرة واللخبطة والإنفصام للكثير من المبتدئين في هذا المجال😂💔. هالمره اسلوب الشرح راح يكون مختلف. بعطيك جزء من قصة مجال تعلم الآلة وبعدها راح تنطلق وتغوص في هذا البحر العجيب..
نقول بسم الله ونبدأ قصتنا👇🏻
في جامعة اسمها الذكاء الاصطناعي(AI) . هذه الجامعة فيها العديد من الكليات مثل كلية رؤية الكمبيوتر (Computer Vision) وكلية الروبوتات (Robotics) وكلية تعلم الآلة(Machine learning) وغيرها من الكليات.
كل كلية عندها مشكلاتها ونظامها الخاص. خلونا نتكلم عن كلية تعلم الآلة
في هذه الكلية العجيبة, استاذ اسمه nulls دائما اقلامه مخلص حبرها لدرجة الطلاب يحتارون لما ينقلون من السبورة ايش يكتبون بدل الكلمات الممسوحة..
لما الطالب يرجع البيت ويبدأ يتدرب على حل المسائل يضيع بالمذاكرة ويحتار لأنه ماقدر ينقل كل شي من السبورة
وأستاذ ثاني اسمه duplicate إذا شرح مسألة معينة يجي اليوم الثاني ويشرح نفسها بالضبط. يعني بإختصار يضيع وقت الطالب على الفاضي ومايخليه يستفيد بالتدريب على مسائل مختلفة🤦‍♀️
وفي استاذ اسمه outlier قاعد يشرح درس ضرب الأعداد من 1الى 7 فجأة بنص الدرس قام يشرح مسألة عن ضرب عدد 52 ب 92 ! . كل الطلاب يتساءلون هل هذه المسألة مهمة بالإختبار ولازم يتدربون على وحدة تشبهها ولا لا؟
وفيه كثير اساتذة غريبين اطوار ومضيعين الطلاب معاهم
مهارات الطلاب بهذه الكلية متعددة
فيه طالبه اسمها Linear Regression هي طالبه بسيطه صراحة مقارنة بغيرها ☺️بس لما تجيب لها أي مسألة خطية تعرف تعطيك كم الناتج بالضبط وتعرف تحسب لك سعر أي ارض تبغى تشتريها اذا عطيتها مواصفاتها بدون ماينلعب عليك
وفيه اربع طلاب اساميهم نفس الشي وهو decision tree يعشقون تصنيف الاشياء, كل واحد منهم يعرّف يفرّق بين المسألة الخطية والغير خطية , يعّرف يفرّق بين أنواع الزهور وغيرها.. شغلهم مع بعض احسن من شغلهم الفردي ويسمون نفسهم شلّة Random forest tree 🤩
والطلاب بهالكلية مهاراتهم متنوعة جدًا وممكن يكون أكثر من طالب عندهم نفس المهارة لكن طريقة تفكيرهم لإيجاد الحل مختلفة.
المهم
طريقة شرح المعلمين لهذا المنهج 3 انواع
👇🏻
نوع يشرح بذمة وضمير ويعطيك ثلاث ارباع المنهج ويخلي الربع الباقي للأختبار ، ويعطي كل طالب اسئلة تناسب مهاراته وقدراته. كل الطلاب اللي يدرسون مادة هالاستاذ يجيبون درجات مرتفعة ويتوظفون بوظائف مناسبة لهم بسبب أدائهم الرائع😍
والنوع الثاني, يشرح ويدرب الطلاب على ربع المنهج بس! ويحط ثلاث ارباع المنهج اختبار لهم. الطلاب هنا يجيبون درجات سيئة جدًا في الاختبار
ونوع ثالث يشرح كل المنهج ويعطي الطلاب اسئلة الاختبار ويقول لهم هذه الاسئلة اللي بتجيكم في الاختبار. هنا الطلاب يجيبون درجات مرتفعة جدًا لأنهم ”حافظين فقط” لكن بعد ماتخرجوا من الجامعة وقدّموا على اختبار القبول الوظيفي كلهم جابوا درجات سيئة جدًا جدًا في هذه المادة
وانتهت القصة..
الاستاذ في هذه القصة هو انت عزيزي القارئ.. يجب عليك دائمًا التأكد أن مجموعة البيانات خاصتك تخلوا من كل المشاكل التي قد تُقلل من فهم النموذج لها.
يجب أن تكون مجموعة البيانات التي تريد تحليلها خالية من القيم المفقودة(nulls) و القيم الشاذة التي ليس لها علاقة ببقية البيانات ولا تؤثر عليها (outliers)وتأكد من خلو مجموعة بياناتك من القيم المتكررة (duplicate values)وهناك الكثير من الامور التي يجب عليك تطهيرها قبل بدء التدريب
تُسمّى عملية استكشاف وتصحيح البيانات الخاطئة بعملية تطهير البيانات (Data cleansing)
قمنا هنا بالتحقق من وجود القيم المفقودة. إذا كانت مجموعة بياناتك تحتوي على قيم مفقودة فهناك عدة طرق تستطيع فعلها لتعويض هذه الفراغات وإذا كانت مجموعتك خالية من القيم المفقودة فهذا جيد👍🏻
تخيل اننا قمنا بتطهير بياناتنا والآن نحتاج إلى فصل الميزات(features) عن الهدف(target) ونحفظ كلا منهما بمتغير خاص به
ليكن X للميزات
و y للهدف
بعدها قمنا باستدعاء مكتبة تساعدنا على تقسيم بياناتنا إلى قسمين
-قسم لتدريب النموذج
-وقسم للاختبار
إذا لم تفهم الصورة تخيل ان كل صف بX يُمثل السؤال و كل صف بy يُمثل الجواب
هل تتذكر جدول كورونا ؟
الاعراض هنا تُمثل X وناتج التشخيص يُمثل y
. بعد الانتهاء من التقسيم نقوم بتدريب النموذج واختباره.
اولًا يجب علينا تحديد نوع النموذج المناسب لمشكلتنا.
في جدول كورونا مثلًا من الواضح ان نوع المشكلة تصنيفية (Classification) فالجواب إما أن يكون 1 (مصاب بكورونا) او 0 (غير مصاب بكورونا)
هنالك عددًا من النماذج التصنيفية التي يمكن اختيارها دعونا نختار Random Decision Tree classifier مثلًا
بعد اختيار النموذج المناسب لمشكلتنا نقوم بتدريبه.
في مرحلة التدريب نقوم بتزويد النموذج ب75% من بيانات الميزات المحفوظة بمتغير X وبيانات الهدف المحفوظة بالمتغير y
والآن نقوم باختبار النموذج
واختبارك عزيزي القارئ 🤭
مالذي يجب إعطاءه للنموذج في مرحلة الاختبار؟
إذا كانت إجابتك هي test_X فقط فقد فهمت هذا الثريد بشكل رائع !
في مرحلة الاختبار يقوم الاساتذه بإعطائنا الاسئلة ونقوم نحن بإيجاد الحلول .. نفس الشي يحدث هنا.
بعد الانتهاء من الاختبار نقوم بإستدعاء ادوات تساعدنا على التحقق من اداء النموذج.
هناك عدة انواع من ادوات التحقق. اخترنا هنا accuracy score لأنها الاداة المناسبة للنماذج التصنيفية.
تقوم هذه الاداة بحساب الاجابات الصحيحة للنموذج. كلما ارتفعت درجتها كلما كان اداء النموذج افضل👍🏻
والآن دعونا نرى كيف يتم حساب درجة الدقة(Accuracy Score) رياضيًا لنفهم مالذي يجري عند استدعاءها
*انظر للصورتين
بقي لدينا خطوة اساسية وهي تمثيل البيانات(Data Visualization). نقصد بتمثيل/تصوير البيانات هو أن نقوم بتحويل الاف الصفوف في جدول البيانات إلى ملخص مرئي, حيث أن هذه الطريقة تقوم بتسهيل التعرف على أنماط واتجاهات البيانات 👍🏻
والآن سوف أتوقف هنا دون الخوض في تفاصيل تمثيل البيانات لأنني لا أريد تمديد هذا الثريد اكثر.

Loading suggestions...