أقسام الموقع: تعلم الآلة

[Scikit Learn] شرح عمل برنامج للتنبؤ بالقيم بخوارزمية Linear Regression

تعد خوارزمية المنحني الخطي/الانحدار الخطي Linear Regression من أشهر خوارزميات تعلم الالة وهي تدخل ضمن تصنيف التعلم بإشراف Supervised Learning

وذلك يعود لـ :

  • سهولة استخدامها وضبطها
  • سرعتها في اجراء العمليات الحسابية

ولكن ذلك لايعني أنها مناسبة لجميع الاحتياجات ﻷن من سلبياتها :

  • أنها حساسة للقيم المتطرفة
  • بساطتها وسهولتها تمنع استخدامها في المجالات المعقدة

في درسنا اليوم سنتعلم كيفية تطبيق هذه الخوارزمية بأبسط شكل ممكن خطوة بخطوة بواسطة مكتبة Scikit Learn الشهيرة للذكاء الصنعي وتعلم الالة بلغة بايثون

ماهي خوارزمية “الانحدار الخطي Linear Regression” ؟

هي عبارة عن طريقة إحصائية تسمح لنا بتلخيص ودراسة العلاقات بين متغيرين مستمرين (كميين) .
أي ببساطة من خلال الانحدار الخطي, يمكننا التنبؤ/التوقع بقيمة متغير ما من خلال قيمة متغير اخر يرتبط به

0- مقدمة

لدينا قاعدة بيانات صغيرة فيها أعمار 15 شخص تدربوا في النادي الرياضي لمدة ساعة , وتم حساب كم سعرة حرارية/كالوري حرقها كلٌ منهم

وفي برنامجنا اليوم سنقدم هذه المعلومات لبرنامجنا ضمن خوارزمية المنحني الخطي حتى يتعلم منها وبعد أن يتعلم منها سنطلب منه أن يتنبأ لنا بعدد السعرات الحرارية التي قد يحرقها أشخاص جدد اذا تدربوا في هذا النادي لمدة ساعة كاملة , حيث يعتمد البرنامج على أعمار المتدربين كمتغير مستقل

1- استدعاء المكتبات

أول خطوة في برنامجنا هو استدعاء مكتبة سايكيت ليرن Scikit Learn التي من خلالها سننفذ الخوارزمية

وفي استدعاءنا للمكتبة سنحدد أننا نريد كلاس linear_model فقط

from sklearn import linear_model

2- تحميل البيانات

والان سنضيف قوائم أعمار الاشخاص الذين أحصينا البيانات عنهم ولدينا علم مسبق بأعمارهم وكم سعرة حرارية قد حرقوا , وذلك لكي نقدمها لاحقاً للبرنامج ليتعلم منها

ages = [
    [18],[20],[22],[25],[27],[31],[34],[35],[37],[39],[42],[44],[50],[55],[61]
]

calories = [
    [364.6],[360.0],[346.1],[320.8],[320.4],[322.6],[319.9],[300.1],[288.7],[281.5],[279.2],[267.9],[240.7],[232.0],[211.4]
]

وأيضاً سنضيف للبرنامج معلومات الأشخاص ال4 الجدد الذين نعرف أعمارهم ولكن لانعرف بعد كم سعرة حرارية قد يحرقون أثناء التدريب , وهي المعلومة التي سيتولى البرنامج بأمر تنبؤها

ages_new = [[19],[36],[16],[64]]

3- تحديد نموذج التعلم

هنا سنختار النموذج/الخوارزمية التي من خلالها سنعالج البيانات ونتنبئ نتائجها

وفي حالتنا سنختار نموذج المنحني الخطي/الانحدار الخطي Linear Regression

Model = linear_model.LinearRegression()

4- تدريب وتعليم النموذج على البيانات

هنا سنقوم بعملية تعليم الخوارزمية/النموذج على بيانات المتدربين الـ15 لدينا لتتمكن (على أساسها) من القيام بعمليات تنبؤ لأي معلومات جديدة تقدم لها

وتعد هذه الخطوة من أهم الخطوات حيث أن مدى دقة البرنامج تعتمد بشكل أساسي على كمية البيانات التي يتم تعليمه عليها

ففي حالتنا سنقوم بتعليم وتدريب البرنامج على بيانات 15 شخص , ولكن ان اردنا دقة أعلى في التوقعات فعلينا أن نقدم للبرنامج بيانات عن متدربين أكثر .

بالتالي نلاحظ أن دقة برنامج تم تدريبه على بيانات 400 شخص , دقته تكون أكبر بكثير من دقة برنامج تم تدريبه على بيانات 50 شخص , مثلاً .

Model.fit(ages,calories)

5- حساب دقة النموذج

عطفاً على الفقرة السابقة , فإنه يوجد العديد والكثير من الطرق التي يمكن من خلالها معرفة مدى دقة تنبؤات النموذج الخاص بنا

ولكن في درس اليوم , وباعتباره مقدمة وشرح بسيط , سنستخدم أبسط الطرق دون التوسع في الشرح

score = Model.score(ages,calories)
print ("Score:",score)

6- التنبؤ بقيم جديدة !

في هذه الخطوة سنقول للبرنامج بعد أن تعلم وتدرب على بيانات ال15 متدرب السابقين بأنه لدينا 4 متدربين جدد وأعمارهم كذا وكذا .. وسنطلب منه أن يتنبأ لنا بعدد السعرات الحرارية التي يمكن أن يحرقوها اذا تدربوا في النادي الرياضي لمدة ساعة مثل زملائهم ال15 السابقين !

Model.predict(ages_new)

النتائج !

ويكون بذلك شكل برنامجنا كاملاً كالاتي :

from sklearn import linear_model


ages = [
    [18],[20],[22],[25],[27],[31],[34],[35],[37],[39],[42],[44],[50],[55],[61]
]

calories = [
    [364.6],[360.0],[346.1],[320.8],[320.4],[322.6],[319.9],[300.1],[288.7],[281.5],[279.2],[267.9],[240.7],[232.0],[211.4]
]


ages_new = [[19],[36],[16],[64]]


Model = linear_model.LinearRegression()


Model.fit(ages,calories)


score = Model.score(ages,calories)
print ("Score:",score)



Model.predict(ages_new)

وعند تشغيل البرنامج ستظهر النتائج كالاتي :

Score: 0.9732760441871602

array([[357.07073913],
       [297.06      ],
       [367.66086957],
       [198.21878261]])

أولاً بالنسبة للـ Score

فكما قلنا في الفقرة 5 , أنه دلالة على مدى دقة البرنامج

وفي برنامجنا حصلنا على النتيجة 0.9732760441871602

ومعناها حرفياً “أن 97% من القيم الواردة في مصفوفة الكالوريز يمكن تفسيرها بالقيم الواردة في مصفوفة الأعمار”

أي بمعنى آخر أن متغير عمر المتدرب ومتغير عدد السعرات الحرارية يوجد بينهما علاقة قوية

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

وفي الدروس القادمة سأشرح طرق اخرى أفضل لحساب مدى دقة البرنامج وبتوسع وتفصيل أكثر .

أما ثانياً فهاهي النتائج أمامنا :

المتدرب الذي عمره 19 , من المتوقع ان يحرق 357 سعرة حرارية تقريباً

والذي عمره 36 , 297 سعرة حرارية

والذي عمره 16 ,, 367 سعرة حرارية

والذي عمره 64 ,, 198 سعرة حرارية

تحميل الكود الكامل من GitHub

وبهذا يكون قد انتهى درسنا , وفي حال وجد أي سؤال او ملاحظة فنرحب بها عبر التعليقات .

Firas Maan

مشاركة
نُشر بواسطة
Firas Maan
الوسوم: Predict ValuesRegressionScikit LearnSupervised Learning

آخر المنشورات

  • أخبار

برنامج DeepFake أونلاين لصناعة الفيديوهات المزيفة بدون تحميل

لم يمضي وقت كبير عندما قام أحد مستخدمي منصة reddit  يسمى ديب فيك Deep fake بنشر فيديوهات واقعية وذات جودة…

8 أشهر مضت
  • تعلم الآلة
  • مبادئ عامة

انشاء شبكة عصبية اصطناعية بسيطة Artificial Neural Network, الجزء الأول

0- تمهيد لدينا بعض المعلومات عن أزهار موجودة في الحديقة كان الباحث يسجل (طول ساق الزهرة) و(عرض ساق الزهرة) و…

9 أشهر مضت
  • أخبار

“شمرا أكاديميا” محرك بحث لمشاريع التخرج والابحاث العلمية السورية لطلاب الجامعات والباحثين

"شمرا أكاديميا" هي خدمة يقدمها محرك البحث السوري الأول "شمرا" وتعتبر خدمة "شمرا أكاديميا" كمحرك بحث خاص بالمؤلفات العلمية والأكاديمية…

سنة واحدة مضت
  • أخبار

“جوليا” لغة برمجة الذكاء الاصطناعي المنتظرة !

Follow my blog with Bloglovin "جوليا Julia" هي لغة برمجة عالية المستوى متعددة الاغراض , صممت في البداية لتوافق احتياجات…

سنة واحدة مضت
  • أخبار

برامج Deep Fake لانتاج المشاهد المفبركة بالذكاء الاصطناعي

لندن - نيويورك: «الشرق الأوسط» تصور مشهداً لغرفة فيها كنبة حمراء، ونبتة في حوض، ولمسة من الفنّ الخفيف الذي نراه…

سنة واحدة مضت
  • أخبار

أول ذكاء اصطناعي مصنوع من الحمض النووي

اليكم تفاصيل هذا الخبر العلماء يبتكرون أول ذكاء صناعي مصنوع من الحمض النووي وهذا هو مستقبله من الواضح أن مستقبل…

سنة واحدة مضت