- تدريب نموذج تعلّم آلي باستخدام مكتبات Python في دفتر ملاحظات Jupyter
- دمج نموذج تعلّم آلي مدرّب في تطبيق ويب Streamlit
هذه هي أنشطة هذا الدرس:
العمل مع نماذج التعلم الآلي
هناك ميزة رئيسية أخرى في دفاتر Jupyter Notebooks و Python و Streamlit وهي القدرة على تدريب نماذج التعلم الآلي وإجراء التنبؤات.
إذا كنت جديدًا في مجال الذكاء الاصطناعي، فقد ترغب في الاطلاع على دروس الذكاء الاصطناعي في هذا المنهج لتتعلم الأساسيات قبل الانتقال إلى البرمجة الأكثر تقدمًا المتضمنة هنا. يمكنك استخدام منصة سهلة الاستخدام لنماذج التعلم الآلي مثل Teachable Machine لإنشاء نموذج، ويمكنك مع ذلك دمجه في تطبيق ويب Python.
إذا كانت لديك بعض الخبرة في مجال الذكاء الاصطناعي والعمل مع مجموعات البيانات باستخدام دفاتر Jupyter Notebooks، فهذه خطوة تالية جيدة بالنسبة لك.
في هذا الدرس، ستتعرف في هذا الدرس على بعض مكتبات بايثون للتعلم الآلي، وبعض نماذج التعلم الآلي المختلفة التي يمكنك إنشاؤها باستخدام بايثون.
للمراجعة، لإنشاء نموذج للتعلم الآلي، هناك 3 أجزاء رئيسية.
مجموعة البيانات
يجد الأنماط مع خوارزمية التعلم
توقع!
مجموعة البيانات هي مدخلاتك للنموذج. يمكن أن تتضمن نصًا أو صورًا أو أصواتًا أو أوضاعًا. لقد عملنا مع البيانات النصية والعددية في الوحدة 2 باستخدام دفاتر جوبيتر. سنواصل العمل مع البيانات النصية في هذا الدرس، على شكل جدول بيانات.
العثور على الأنماط هو في الأساس بناء نموذج التعلم الآلي باستخدام مجموعة البيانات. تحتوي بايثون على العديد من المكتبات التي من شأنها بناء نموذج ذكاء اصطناعي من البيانات. في هذا المنهج، سنستخدم العديد من الدوال من حزمة scikit-learn. بالإضافة إلى المكتبات التي توفرها، يحتوي الموقع الإلكتروني على الكثير من المعلومات الممتازة حول التعلم الآلي وعملية بناء النماذج. إنه مورد رائع لمعرفة المزيد!
بمجرد إنشاء النموذج الخاص بك، يمكن استخدام النموذج للتنبؤ بالنتيجة بناءً على معلومات جديدة. ومرة أخرى، توفر بايثون مكتبات تتيح ذلك.
المعالجة المسبقة للبيانات
قبل إرسال مجموعة البيانات الخاصة بك إلى الخوارزمية لبناء النموذج، يجب أن تكون معالجتها مسبقًاأو "تنظيفها" حتى تتمكن خوارزمية بناء النموذج من العمل عليها وإنشاء النموذج الأكثر دقة. في الواقع، يكمن الجزء الأكبر من العمل على إنشاء نموذج التعلم الآلي في المعالجة المسبقة. ستحتاج إلى النظر بعناية في البيانات لتحديد ما هو مهم، وما يمكن استبعاده، وما يحتاج إلى التنظيف.
ما الذي تتضمنه المعالجة المسبقة؟ مع مجموعة البيانات النصية، إليك بعض الأمور التي يجب التعامل معها.
قيم لاغية
تحتوي مجموعة البيانات في بعض الأحيان على قيم فارغة أو فارغة، خاصةً إذا كانت البيانات عبارة عن بيانات مسح. في بعض الأحيان، يمكنك حذف أي صفوف تحتوي على بيانات فارغة.
ومع ذلك، إذا كان عدد العينات منخفضًا، فقد لا ترغب في حذفها. خيار آخر هو استبدال قيمة فارغة بقيمة أخرى. قد تكون صفرًا، أو قد تكون متوسط جميع القيم الأخرى لهذا الحقل.
القيم المتطرفة
تحتوي البيانات أحياناً على عينة أو عينتين مختلفتين تماماً عن بقية البيانات. قد يؤدي ذلك إلى تشويه النموذج. أنت لا تريد أن تؤثر القيم المتطرفة على كيفية إنشاء النموذج، لذلك غالبًا ما يتم استبعاد القيم المتطرفة من مجموعة البيانات.
على سبيل المثال، قد يكون لديك مجموعة بيانات حيث 95% من العينات هي لأشخاص تتراوح أعمارهم بين 10 و30 عامًا، ولكن لديك بعض العينات العشوائية التي يكون فيها الأشخاص فوق 50 عامًا. نظرًا لأن الغالبية العظمى من العينات تنتمي إلى الفئة العمرية 10-30 عامًا، يمكنك التفكير في إزالة العينات من الفئة العمرية الأكبر سنًا.
التوحيد القياسي
غالبًا ما تختلف الأرقام في مجموعة بيانات كبيرة، اعتمادًا على الميزات التي يتم تمثيلها. على سبيل المثال، قد يكون لديك عمر يتراوح من 0 إلى 70، ولكن قد يكون لديك راتب يتراوح من 0 إلى 500,000! تختلف المقاييس اختلافًا كبيرًا، لذا قد تكون إحدى الميزات أكثر أهمية في النموذج.
ولإصلاح ذلك، يمكنك توحيد البيانات بحيث تكون على مقياس واحد. يوفر scikit-learn مقياسًا قياسيًا StandardScaler، والذي يقوم بتحديث كل ميزة بحيث يكون المتوسط 0 والانحراف المعياري 1.
شيء آخر يجب أخذه بعين الاعتبار هو عدد متوازن من العينات لكل فئة أو تسمية. تريد التأكد من وجود نفس العدد تقريبًا من كل فئة في مجموعة البيانات الخاصة بك.
الترميز
يحب الذكاء الاصطناعي الأرقام، وليس بالضرورة الكلمات. لذلك من المفيد تحويل جميع البيانات إلى أرقام. يوفر scikit-learn وظائف التشفير، بحيث يمكنك بسهولة تحويل مجموعة من القيم النصية الممكنة إلى مجموعة من الأرقام.
مثال على ذلك يمكن أن تكون مستويات النشاط، مع عينة من القيم المستقرة والخفيفة والمتوسطة والعالية. يمكن ترميز هذه الاستجابات لتكون القيم 0 و1 و2 و3، وهو ما يسهل على خوارزمية بناء النموذج التعامل معه.
تقسيم البيانات
بمجرد الانتهاء من المعالجة المسبقة لبياناتك، تحتاج إلى تقسيمها إلى مجموعة تدريب ومجموعة اختبار. سيتم استخدام مجموعة التدريب لتدريب وإنشاء النموذج. ثم ستختبر النموذج الخاص بك باستخدام مجموعة الاختبار لترى كيف يعمل.
هناك طرق قياسية لتقسيمها (عادةً 75% للتدريب، و25% للاختبار) ولكن يمكنك تقسيمها كيفما تشاء. مرة أخرى، يتم توفير الوظائف بحيث يكون كل ذلك آلياً من أجلك.
إنشاء النموذج
الخطوة التالية هي إنشاء النموذج. القرار الكبير الذي يجب اتخاذه هو، أي خوارزمية أستخدم؟ هناك العديد من خوارزميات التعلّم تحت الإشراف المختلفة للاختيار من بينها، ومن الصعب معرفة أي منها تستخدم. تتمثل العملية الجيدة في تجربة عدة خوارزميات مختلفة ثم معرفة أي منها يمنحك أفضل دقة.
الخطوة الأولى هي تحديد ما إذا كنت بحاجة إلى تصنيف أو خوارزمية خوارزمية انحدار خوارزمية انحدار. يعتمد ذلك على ما تحاول التنبؤ به.
خوارزميات التصنيف تُستخدم للتنبؤ بأهداف أو فئات منفصلة. على سبيل المثال، فإن تصنيف البريد الإلكتروني كرسائل غير مرغوب فيها أو غير مرغوب فيها سيكون مشكلة تصنيف
خوارزميات الانحدار للتنبؤ بشيء ما على طول نطاق متواصل. أحد الأمثلة على ذلك هو التنبؤ بالراتب الذي سيتقاضاه الشخص. التنبؤ هو نطاق من الأرقام ويمكن أن يكون الناتج أي قيمة على طول هذا النطاق.
فيما يلي بعض الأنواع الشائعة من خوارزميات إنشاء النماذج.

التصنيف
- شجرة القرار
- الغابة العشوائية
- ك-أقرب الجيران
- بايز ساذج
- الانحدار اللوجستي
- آلة دعم المتجهات الداعمة
الانحدار
- الانحدار الخطي
- انحدار الحافة
- انحدار لاسو
- الانحدار متعدد الحدود
- الانحدار الخطي البايزي
- انحدار المتجهات الداعمة
لاحظ أن بعض الخوارزميات تندرج تحت كلا النوعين. على سبيل المثال، هناك مصنف شجرة القرار وكذلك منظم شجرة القرار. وتعمل آلة دعم المتجهات الداعمة للتصنيف، وتعمل آلة دعم المتجهات الداعمة للانحدار.
إذن، كيف تقرر أيهما تستخدم؟ يجب أن تبحث لترى ما يستخدمه علماء البيانات الآخرون في حالات مختلفة لترى ما قد يناسب نموذجك. يجب عليك أيضًا تجربة بعض الخوارزميات المختلفة مع بياناتك ثم العثور على أي منها يوفر أفضل دقة. يمكنك أيضًا تعديل معلمات خوارزمية معينة لمعرفة ما إذا كانت تُنتج نموذجًا أكثر دقة.
يوفر scitkit-learn دوال لكل هذه الخوارزميات، لذا من السهل إنشاء النموذج.
تقييم النموذج
أنت تريد أن يكون نموذجك أفضل ما يمكن أن يكون، لذلك تحتاج إلى تقييم أدائه. هناك متغيران شائعان في تقييم النموذج هما التحيز والتباين.
التحيز هو الفرق بين القيمة المتوقعة للنموذج والقيمة الصحيحة.
التباين هو مدى تغير التنبؤات عند استخدام بيانات مختلفة.
أنت تريد تحقيق توازن جيد بين التحيز والتباين.
التحيّز العالي -> التحيّز العالي -> عدم الملاءمة.
عدم الملاءمة عندما يكون النموذج أبسط من أن يأخذ في الحسبان الضوضاء في بيانات التدريب. يمكن أن يحدث هذا إذا لم يكن هناك بيانات كافية أو ميزات (أعمدة) غير كافية، أو الكثير من الضوضاء في البيانات. إذا لم يكن أداء النموذج جيدًا على كل من بيانات التدريب وبيانات الاختبار، فهذا يشير إلى عدم ملاءمة النموذج.
التباين العالي -> التباين العالي -> الإفراط في الملاءمة.
الإفراط في التركيب يحدث إذا قمت بتدريب نموذج على مجموعة واحدة من البيانات وكان أداؤه جيدًا جدًا، ولكن إذا قدمته بعد ذلك ببيانات جديدة، فلن يكون أداؤه جيدًا على الإطلاق. يمكن أن يحدث هذا إذا كان النموذج معقدًا بشكل مفرط ويحاول أن يتناسب بشكل كبير مع بيانات التدريب. قد يتنبأ النموذج بشكل جيد جدًا على بيانات التدريب، لكن أداءه يكون ضعيفًا على بيانات الاختبار.
أحد أساليب التحقق من أداء النموذج هو التحقق التبادلي.
التحقق المتقاطع يعني تدريب نموذجك عدة مرات، باستخدام تقسيمات مختلفة لبيانات التدريب/الاختبار في كل مرة. تنقسم مجموعة بياناتك إلى عدة طياتأو مجموعات فرعية. ثم يتم الاحتفاظ بطية واحدة كمجموعة التحقق من الصحة أو مجموعة الاختبار، وتستخدم الطيات المتبقية لتدريبها. يتم تنفيذ ذلك عدة مرات، بحيث تتغير مجموعات التدريب والاختبار في كل مرة.
يوفر sciikit-learn أيضًا مقاييس بحيث يمكنك بسهولة الحصول على درجات الأداء لنماذجك.
- درجة الدقة = التنبؤات الصحيحة/إجمالي التنبؤات الصحيحة
- الدقة = الإيجابيات الصحيحة/(الإيجابيات الصحيحة + الإيجابيات الخاطئة)
- الاستدعاء = الإيجابيات الصحيحة/(الإيجابيات الصحيحة + السلبيات الخاطئة)
- درجة F1 = (2 × الدقة × الاستدعاء) / (الدقة + الاستدعاء)
- الخصوصية = سلبية حقيقية/ (الإيجابيات الحقيقية + السلبيات الكاذبة)
- مصفوفة الارتباك - تُظهر الأعداد الإيجابية الحقيقية والسلبية الحقيقية والإيجابية الكاذبة والسلبية الكاذبة
من خلال التحقق من المقاييس من خوارزميات مختلفة، يمكنك اختيار أفضل نموذج.
التنبؤ!
بمجرد حصولك على النموذج الذي ترضى عنه، ستحتاج بعد ذلك إلى استخدامه في تطبيقك.
من الشائع القيام بالمعالجة المسبقة للنموذج وإنشائه وتقييمه باستخدام Python، في بيئة مثل Jupyter Notebooks. من هناك، يمكنك تصدير نموذجك كملف.
ثم، داخل تطبيق Streamlit الخاص بك، يمكنك تحميل النموذج واستخدامه لعمل تنبؤات.
في أنشطة هذا الدرس، ستخوض هذه العملية بأكملها باستخدام مجموعة بيانات مخاطر السكتة الدماغية. سترى كيفية المعالجة المسبقة للبيانات، وإنشاء نماذج باستخدام خوارزميات مختلفة، ثم استخدام نموذج في تطبيق Streamlit بسيط للتنبؤ بخطر الإصابة بالسكتة الدماغية، بالنظر إلى بعض خصائص المدخلات.
النشاط 1: تدريب نموذج ذكاء اصطناعي في دفتر جوبيتر
استكشف مجموعة بيانات مخاطر السكتة الدماغية لبناء نموذج ذكاء اصطناعي
- قم بتنزيل مجموعة بيانات التنبؤ بالسكتة الدماغية من Kaggle.
- العمل مع البيانات في دفتر ملاحظات Jupyter Notebook من أجل:
- مراجعة البيانات
- المعالجة المسبقة للبيانات لإعدادها للنموذج
- إنشاء بعض النماذج المختلفة
- تقييم واختيار نموذج لتطبيقك واختياره
- تصدير النموذج
التحدّي

جرّب نموذجًا مختلفًا عن النماذج الموجودة في دفتر ملاحظات Jupyter.
- ابحث في موقع scikit-learn على الويب عن خوارزميات تصنيف أخرى، وانظر إلى أمثلة أخرى لبناء النماذج على Kaggle.
- اختر خوارزمية واحدة وأضف الرمز إلى دفتر ملاحظاتك لإنشاء النموذج.
- استخدم مقاييس scikit-learn للتحقق من الدقة.
كيف يعمل نموذجك؟ هل هو أفضل من أي من الخوارزميات الأخرى الموجودة في دفتر الملاحظات؟
النشاط 2: إنشاء تطبيق تنبؤ
استخدم نموذجك في تطبيق Streamlit
اختر الفيديو المناسب اعتمادًا على كيفية ترميز تطبيقك، إما محليًا باستخدام Visual Studio Code، أو عبر الإنترنت باستخدام Codespaces.
التحدّي

مجموعة بيانات السوسن هي مجموعة بيانات كلاسيكية تصنّف أزهار السوسن إلى 3 أنواع (سيتوسا، وبرسيكولور، وفرجينيكا) بناءً على أبعاد البتلة والسبلة.
- قم بإجراء بعض الأبحاث على مجموعة البيانات لمعرفة ميزاتها وأهدافها.
- يمكنك تنزيل مجموعة البيانات وإنشاء النموذج الخاص بك أو استخدام هذا النموذج(ملف مخلل) الذي تم إنشاؤه باستخدام K-أقرب الجيران. لاحظ أنه لم تكن هناك حاجة إلى قشارة لمجموعة البيانات هذه. يحتوي ملف المخلل على النموذج فقط.
- قم باستيراد النموذج وإنشاء تطبيق Streamlit للتنبؤ بأنواع القزحية بناءً على ميزات مجموعة البيانات الأربعة.
إلهام الابتكار التكنولوجي
فيما يلي بعض الأمثلة الرائعة من المشاركين في Technovation الذين استخدموا Python و Streamlit لإنشاء تطبيقات ويب تتضمن نماذج التعلم الآلي.
T.E.D.D.D.Y - كاشف الاستغاثة المبكرة للشباب القائم على النصوص، بواسطة فريق TEDDY من الولايات المتحدة الأمريكيةيساعد المعلمين والمستشارين في الاكتشاف المبكر لمشاكل الصحة النفسية لدى الطلاب. يستخدم TEDDY الذكاء الاصطناعي لتحديد الجمل التي تعبر عن مشاعر سلبية أو تظهر الأنماط اللغوية المتوقعة من الأفراد المصابين بالاكتئاب. بعد ذلك، يمكن إحالة الطلاب إلى أحد المستشارين للحصول على الدعم.
الانعكاس
لقد مررت بالعملية الكاملة للمعالجة المسبقة لمجموعة البيانات، وبناء عدة نماذج، وتقييم واختيار أحدها لاستخدامه في التطبيق. هذا الكثير لتتعلمه في درس واحد!

مراجعة المصطلحات الرئيسية
- المعالجة المسبقة - أخذ مجموعة بيانات والتأكد من أن البيانات الموجودة فيها مناسبة لتدريب نموذج تعلم آلي باستخدام
- خوارزمية التصنيف - خوارزمية تُستخدم لتدريب نموذج تعلّم آلي يصنّف أو يتنبأ بالقيم المنفصلة
- خوارزمية الانحدار - خوارزمية تُستخدم لتدريب نموذج تعلم آلي للتنبؤ بقيمة على نطاق متواصل
- التحيز - الفرق بين القيمة المتوقعة في النموذج والقيمة الصحيحة، بسبب الافتراضات غير الصحيحة التي تبسط النموذج
- التباين - مقدار التباين في تنبؤات النموذج، عندما يكون النموذج غير قادر على التعميم عند مواجهة بيانات جديدة
- الإفراط في التركيب - عندما يتناسب النموذج مع بيانات التدريب بشكل جيد للغاية بحيث لا يمكنه التنبؤ بشكل جيد على البيانات الجديدة، بسبب التباين الكبير في النموذج
- عدم الملاءمة - عندما يكون النموذج مبسطاً أكثر من اللازم ولا يؤدي بشكل جيد سواء على بيانات التدريب أو الاختبار، بسبب التحيز أو الافتراضات العالية في النموذج
الموارد الإضافية
التعلّم الآلي
- برنامج تعليمي لتعلم الآلة للمهوسين -يعطي مقدمة رائعة ونظرة عامة على بعض عمليات تعلم الآلة والمصطلحات
- البرنامج التعليمي لـ Scikit-Learn من Simplile Learn - يستعرض مجموعة بيانات ذات جودة عالية للتدرب على استخدام scikit-learn في دفتر ملاحظات Jupyter
- تعلّم الآلة باستخدام scikit-learn - قائمة تشغيل كاملة على يوتيوب من مدرسة البيانات
ستريمليت
- بناء تطبيق ويب للتعلم الآلي من الصفر مع باتريك لوبير - مثال آخر على بناء نموذج واستخدامه في تطبيق ويب، من البداية إلى النهاية
- مصنف الصور مع Streamlit، إذا تم تدريب النموذج الخاص بك على الصور