You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/ar/2-Regression/1-Tools/README.md

20 KiB

ابدأ مع بايثون و Scikit-learn لنماذج الانحدار

ملخص الانحدارات في ملاحظة مرسومة

ملاحظة مرسومة بواسطة تومومي إيمورا

اختبار قبل المحاضرة

هذه الدرسة متاحة بلغة R!

مقدمة

في هذه الدروس الأربعة، ستكتشف كيفية بناء نماذج الانحدار. سنناقش قريبًا ما هي استخداماتها. ولكن قبل أن تفعل أي شيء، تأكد من أن لديك الأدوات المناسبة لبدء العملية!

في هذا الدرس، ستتعلم كيفية:

  • تهيئة حاسوبك لمهام التعلم الآلي المحلية.
  • العمل مع دفاتر Jupyter.
  • استخدام Scikit-learn، بما في ذلك التثبيت.
  • استكشاف الانحدار الخطي من خلال تمرين عملي.

التثبيتات والإعدادات

التعلم الآلي للمبتدئين - جهز أدواتك لبناء نماذج التعلم الآلي

🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يشرح كيفية تهيئة حاسوبك للتعلم الآلي.

  1. تثبيت بايثون. تأكد من تثبيت بايثون على حاسوبك. ستستخدم بايثون في العديد من مهام علم البيانات والتعلم الآلي. تتضمن معظم أنظمة الحاسوب تثبيتًا مسبقًا لبايثون. هناك أيضًا حزم برمجة بايثون مفيدة متاحة لتسهيل الإعداد لبعض المستخدمين.

    مع ذلك، تتطلب بعض استخدامات بايثون إصدارًا معينًا من البرنامج، في حين تحتاج أخرى إلى إصدار مختلف. لذلك، من المفيد العمل ضمن بيئة افتراضية.

  2. تثبيت Visual Studio Code. تأكد من وجود Visual Studio Code مثبتًا على حاسوبك. اتبع هذه التعليمات لـ تثبيت Visual Studio Code للإعداد الأساسي. ستستخدم بايثون في Visual Studio Code في هذا المساق، لذا قد ترغب في تعلُّم كيفية تهيئة Visual Studio Code لتطوير برامج بايثون.

    تعرّف على بايثون بسهولة من خلال متابعة مجموعة وحدات التعلم

    إعداد بايثون مع Visual Studio Code

    🎥 انقر على الصورة أعلاه لمشاهدة فيديو: استخدام بايثون في VS Code.

  3. تثبيت Scikit-learn، باتباع هذه التعليمات. بما أنك تحتاج إلى التأكد من استخدام بايثون 3، يُوصى باستخدام بيئة افتراضية. لاحظ أنه إذا كنت تثبت هذه المكتبة على ماك M1، هناك تعليمات خاصة على الصفحة المذكورة أعلاه.

  4. تثبيت Jupyter Notebook. ستحتاج إلى تثبيت حزمة Jupyter.

بيئة التأليف الخاصة بك في التعلم الآلي

ستستخدم الدفاتر لتطوير كود بايثون الخاص بك وإنشاء نماذج التعلم الآلي. هذا النوع من الملفات أداة شائعة لدى علماء البيانات، ويمكن التعرف عليها من خلال اللاحقة أو الامتداد .ipynb.

الدفاتر هي بيئة تفاعلية تسمح للمطور بكتابة الكود وإضافة ملاحظات وكتابة توثيق حول الكود، وهو أمر مفيد جدًا للمشاريع التجريبية أو البحثية.

التعلم الآلي للمبتدئين - إعداد دفاتر Jupyter لبدء بناء نماذج الانحدار

🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يشرح هذا التمرين.

تمرين - العمل مع دفتر ملاحظات

في هذا المجلد، ستجد الملف notebook.ipynb.

  1. افتح notebook.ipynb في Visual Studio Code.

    ستبدأ خادم Jupyter مع تشغيل بايثون 3+. ستجد أجزاء من الدفتر يمكن تشغيلها، وهي قطع من الكود. يمكنك تشغيل قطعة الكود من خلال اختيار الرمز الذي يشبه زر التشغيل.

  2. اختر رمز md وأضف بعض الماركدون، والنص التالي # مرحبًا بك في دفترك.

    ثم أضف بعض كود بايثون.

  3. اكتب print('hello notebook') في كتلة الكود.

  4. اختر السهم لتشغيل الكود.

    سترى العبارة المطبوعة:

    hello notebook
    

VS Code مع دفتر ملاحظات مفتوح

يمكنك دمج كودك مع التعليقات لتوثيق الدفتر بنفسك.

فكر للحظة كيف تختلف بيئة عمل مطور الويب مقارنةً ببيئة عالم البيانات.

ابدأ العمل مع Scikit-learn

الآن بعد أن تم إعداد بايثون في بيئتك المحلية وأصبحت مرتاحًا في استخدام دفاتر Jupyter، لنكتسب نفس الراحة مع Scikit-learn (تنطق ساي كما في science). يوفر Scikit-learn واجهة برمجة تطبيقات واسعة لمساعدتك في أداء مهام التعلم الآلي.

حسب موقعهم الرسمي، "سكايكيت-ليرن هي مكتبة تعلم آلي مفتوحة المصدر تدعم التعلم الخاضع للإشراف وغير الخاضع للإشراف. كما توفر أدوات متنوعة لتركيب النماذج، ومعالجة البيانات، واختيار النماذج وتقييمها، والعديد من الأدوات الأخرى."

في هذا المساق، ستستخدم Scikit-learn وأدوات أخرى لبناء نماذج تعلم آلي لأداء ما نسميه 'التعلم الآلي التقليدي'. لقد تجنبنا عمدًا الشبكات العصبية والتعلم العميق، إذ يتم تناولها بشكل أفضل في منهجية 'الذكاء الاصطناعي للمبتدئين' القادمة.

يجعل Scikit-learn بناء النماذج وتقييمها سهلاً. يركز أساسًا على استخدام البيانات الرقمية ويحتوي على عدة مجموعات بيانات جاهزة للاستخدام كأدوات تعلم. كما يتضمن نماذج مبنية مسبقًا ليجربها الطلاب. لنستكشف أولاً عملية تحميل البيانات المعبأة واستخدام مقدّر مدمج أول نموذج تعلم آلي مع Scikit-learn باستخدام بيانات أساسية.

تمرين - دفتر ملاحظاتك الأول مع Scikit-learn

استُلهم هذا الدليل من مثال الانحدار الخطي على موقع Scikit-learn.

التعلم الآلي للمبتدئين - مشروعك الأول للانحدار الخطي في بايثون

🎥 انقر على الصورة أعلاه لمشاهدة فيديو قصير يشرح هذا التمرين.

في ملف notebook.ipynb المرتبط بهذا الدرس، قم بمسح كل الخلايا بالضغط على رمز 'سلة المهملات'.

في هذا القسم، ستعمل مع مجموعة بيانات صغيرة عن مرض السكري مدمجة في Scikit-learn لأغراض التعلم. تخيل أنك تريد اختبار علاج لمرضى السكري. قد تساعدك نماذج التعلم الآلي على تحديد أي المرضى قد يستجيبون بشكل أفضل للعلاج، بناءً على تركيبات من المتغيرات. حتى نموذج انحدار بسيط جدًا، عند تصوره، قد يظهر معلومات حول المتغيرات التي قد تساعدك في تنظيم تجاربك السريرية النظرية.

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

لنبدأ هذه المهمة.

استيراد المكتبات

لهذه المهمة سنستورد بعض المكتبات:

  • matplotlib. إنها أداة رسم بياني مفيدة وسنستخدمها لإنشاء مخطط خطي.
  • numpy. numpy مكتبة مفيدة للتعامل مع البيانات الرقمية في بايثون.
  • sklearn. هذه هي مكتبة Scikit-learn.

استورد بعض المكتبات لمساعدتك في مهامك.

  1. أضف الاستيرادات بكتابة الكود التالي:

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model, model_selection
    

    في الأعلى تقوم باستيراد matplotlib، و numpy، كما تستورد datasets، و linear_model و model_selection من sklearn. يستخدم model_selection لتقسيم البيانات إلى مجموعات تدريب واختبار.

مجموعة بيانات السكري

تتضمن مجموعة البيانات المدمجة السكري 442 عينة بيانات عن مرض السكري، مع 10 متغيرات ميزة، بعضها يشمل:

  • العمر: العمر بالسنوات
  • مؤشر كتلة الجسم
  • ضغط الدم: متوسط ضغط الدم
  • s1 tc: خلايا تي (نوع من خلايا الدم البيضاء)

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

الآن، قم بتحميل بيانات X و y.

🎓 تذكر، هذا تعلم مشرف، ونحتاج إلى هدف y مسمى.

في خلية كود جديدة، قم بتحميل مجموعة بيانات السكري باستدعاء load_diabetes(). يشير المعطى return_X_y=True إلى أن X ستكون مصفوفة بيانات، و y سيكون الهدف للانحدار.

  1. أضف بعض أوامر الطباعة لعرض شكل مصفوفة البيانات وعنصرها الأول:

    X, y = datasets.load_diabetes(return_X_y=True)
    print(X.shape)
    print(X[0])
    

    ما تحصل عليه كرد هو زوج مرتب. ما تفعله هو تعيين أول قيمتين من الزوج إلى X و y على التوالي. تعرف أكثر عن الأزواج المرتبة.

    يمكنك رؤية أن هذه البيانات تحتوي على 442 عنصرًا مشكّلة في مصفوفات من 10 عناصر:

    (442, 10)
    [ 0.03807591  0.05068012  0.06169621  0.02187235 -0.0442235  -0.03482076
    -0.04340085 -0.00259226  0.01990842 -0.01764613]
    

    فكّر قليلًا في العلاقة بين البيانات وهدف الانحدار. الانحدار الخطي يتنبأ بالعلاقات بين ميزة X والمتغير الهدف y. هل يمكنك العثور على الهدف لمجموعة بيانات السكري في التوثيق؟ ماذا تُظهر هذه المجموعة بناءً على الهدف؟

  2. بعد ذلك، اختر جزءًا من هذه المجموعة لرسمه باختيار العمود الثالث من المجموعة. يمكنك فعل ذلك باستخدام عامل : لاختيار كل الصفوف، ثم اختيار العمود الثالث باستخدام الفهرس (2). يمكنك أيضًا إعادة تشكيل البيانات لتكون مصفوفة ثنائية الأبعاد - حسب المطلوب للرسم - باستخدام reshape(n_rows, n_columns). إذا كان أحد المعاملات -1، يتم حساب البعد الموافق تلقائيًا.

    X = X[:, 2]
    X = X.reshape((-1,1))
    

    في أي وقت، اطبع البيانات للتحقق من شكلها.

  3. الآن بعد أن أصبحت لديك بيانات جاهزة للرسم، يمكنك أن ترى ما إذا كان الماكينة يمكنها المساعدة في تحديد تقسيم منطقي بين الأرقام في هذه المجموعة. للقيام بذلك، تحتاج إلى تقسيم كل من البيانات (X) والهدف (y) إلى مجموعات اختبار وتدريب. لدى Scikit-learn طريقة مباشرة لذلك؛ يمكنك تقسيم بيانات الاختبار عند نقطة معينة.

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
    
  4. الآن أنت جاهز لتدريب نموذجك! قم بتحميل نموذج الانحدار الخطي وقم بتدريبه باستخدام مجموعات التدريب X و y الخاصة بك باستخدام model.fit():

    model = linear_model.LinearRegression()
    model.fit(X_train, y_train)
    

    model.fit() هي دالة سترى وجودها في العديد من مكتبات التعلم الآلي مثل TensorFlow

  5. ثم، أنشئ توقعًا باستخدام بيانات الاختبار، باستخدام الدالة predict(). سيتم استخدام هذا لرسم الخط بين مجموعات البيانات.

    y_pred = model.predict(X_test)
    
  6. حان الوقت الآن لعرض البيانات في رسم بياني. Matplotlib أداة مفيدة جدًا لهذه المهمة. أنشئ مخطط نقاط لجميع بيانات X و y الاختبارية، واستخدم التوقع لرسم خط في المكان الأنسب، بين مجموعات بيانات النموذج.

    plt.scatter(X_test, y_test,  color='black')
    plt.plot(X_test, y_pred, color='blue', linewidth=3)
    plt.xlabel('Scaled BMIs')
    plt.ylabel('Disease Progression')
    plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
    plt.show()
    

    مخطط نقاط يوضح نقاط بيانات حول السكري

    فكر قليلاً في ما يحدث هنا. هناك خط مستقيم يمر عبر العديد من نقاط البيانات الصغيرة، ولكنه ماذا يفعل بالضبط؟ هل ترى كيف ينبغي أن تتمكن من استخدام هذا الخط للتنبؤ بمكان تناسب نقطة بيانات جديدة غير مرئية بالنسبة لمحور y في الرسم البياني؟ حاول التعبير بالكلمات عن الاستخدام العملي لهذا النموذج.

تهانينا، لقد أنشأت نموذج الانحدار الخطي الأول لك، وأنتجت توقعًا به، وعرضته في رسم بياني!


🚀تحدي

قم برسم متغير مختلف من هذه المجموعة البيانية. تلميح: حرر هذا السطر: X = X[:,2]. بالنظر إلى هدف هذه البيانات، ماذا يمكنك اكتشافه عن تقدم مرض السكري كمرض؟

اختبار ما بعد المحاضرة

مراجعة ودراسة ذاتية

في هذا الدرس، عملت مع الانحدار الخطي البسيط، بدلاً من الانحدار الخطي أحادي المتغير أو المتعدد. اقرأ قليلاً عن الفروقات بين هذه الأساليب، أو ألق نظرة على هذا الفيديو

اقرأ المزيد عن مفهوم الانحدار وفكر في أنواع الأسئلة التي يمكن الإجابة عليها باستخدام هذه التقنية. خذ هذا الدليل لتعميق فهمك.

الواجب

مجموعة بيانات مختلفة


تنويه: تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.