بسم الله والحمد لله والصلاة والسلام على رسول الله
أهلا وسهلا فيكم بالمحاضرة الثانية في الـ regression
وهنا هنتكلم عن الـ multiple regression كنا في
المحاضرة الماضية اتكلمنا عن الـ simple linear
regression وقلنا simple linear regression معناته
أنا عندي معادلة خط مستقيم واحد فقط اللي هي Y عفوا
خليني أُحرك الـ pointer
قلنا في معادلة الخط المستقيم أن الـ Y تساوي الـ M
X زائد الـ B وقلنا أن الـ M عندها تساوي
مجموع X I ناقص متوسط X مضروبة في Y I ناقص متوسط الـ
Y على مجموع
X I ناقص متوسط الـ X كل تربيع والـ B
متوسط Y ناقص M
الـ X فشوفنا مع بعض كيف احنا وصلنا للمعادلة أو
اشتغلنا مع بعض وشوفنا الـ simple linear regression
اليوم إن شاء الله تعالى هنتكلم على الـ multiple زي
ما وعدناكم هنتكلم على الـ multiple regression وما
زالَ نتكلم على الـ simple linear regression الـ
regression لكنَّه نتكلم على الـ multiple الآن لما أنا
أتكلم على الـ multiple regression معناته أنا بدي
أتوقع العلاقة زي ما قلنا سابقا بين الـ multiple
attributes أو multiple variables في عندي more than
one independent attribute وقلنا من الأمثلة
الموجودة عليها الـ income و الـ education أو تأثير
الـ income و الـ education و الـ living area على
تأثير
قيمة الدخل والتعليم على المنطقة اللي يعيش فيها
الشخص اللي موجود عندها طبعا لما بتكلم على زيادة
عدد الـ variables أو عدد الـ independent variables
معناته أنا بزيد من تعقيد عملية الـ prediction لأنَّه
أنا فعليا بدي أتكلّم على .. بدي أوجد علاقة ما بين
كل الـ attributes هذه مجتمعة طبعا يا جماعة الخير
عشان بس قبل ما أنا أتكلّم شغلة ليش احنا بالتحديد
قلنا linear regression معادلة خطية لأن الرتبة
تبعها هي لاحظوا يا جماعة الخير أنا بتكلم
لما كنت بتكلم على الـ simple regression عفوا بالـ
simple regression عندي x و y ففي الآخر المعادلة
تبعها سواء كانت خط مستقيم أو polynomial بغض النظر
عن طبيعتها أنا في الآخر بتكلم في العلاقة في الـ 2D
ليش؟ لأن في عندي two attributes تمام طب لو كانوا
في عندي three attributes two independent و one
dependent معناته بتكلم على 3D طب لو كانوا four
طبعا، لاحظوا معايا في الـ linear .. linear هنصف
بقول خط طيب، هل ممكن يكون في عندي linear multiple
attributes؟ اه ممكن طبعا، تعالي خلينا نتخيل
المعادلة تبعي بالشكل هذا الـ multiple regression
لما يكون في عندك K independent attributes، هيصير
إيش هكونها؟ طبعا، بتكلم عن linear regression لأن
أعلى قيمة أو أعلى أُس X بتكون واحد، هاي المفهوم
الـ linear الآن الـ predicted y بيتساوي الـ intercept
B0 زائد الـ M1 في X1 زائد M2 في X2 زائد زائد
Mk أو Bk في Xk ولما أنا بدي أجي أرسم معادلة بشكل
هذا أبسط المعادلات اللي ممكن أستوعبها أنا في الرسم
بعد هيك لما يكون لدي two independent variables ها
هي X1 و X2 two independent variables مع الـ
dependent variables صاروا three attributes عشان
أقدر أمثلهم أنا أو أتخيلهم صح بدي أتخيل الـ 3D
space ممتاز طيب المعادلة الخطية في الـ 3D space
معناته هي بتتكلم على surface سطح والسطح هذا
إلي هيكون ميل هيكون مع الـ X و ميل هيكون مع الـ X
الثاني أو المحور الثاني بما أن أنا في عندي الـ 2X
X1 و X2 و الـ Y ثابتة لأن الـ Y هي الـ predicted
value و أنا في عندي X1 و X2 بما أن في عندي ميل مع
X1 و X2 وبناءً عليه أنا بتكلم على معادلة خطية
لكنها في الـ 3D تمام، الآن لو أنا أُفضل أو أعمل
prediction بالـ python بتمنى هذه الجزئية تكون سهلة
يعني مافيش فيها كلام أنت بدك تستوعب طب لو كان في
عندي أنا four attribute three independent
attribute جماعة الخير three independent attribute
و one dependent attribute يعني صاروا أربعة إيش
الشكل تبعي اللي أحب أتخيّله في الـ space في الـ 4D
بسيط بتكلم على space مكعب ممكن تكون هذا الـ space
cube المفروض عندما أزيد عدد الـ Attributes سأزيد
خيالي لكي أتكلم عليها لكن بفضل الله تبارك وتعالى
نحن بعد الـ 3D بنبطل نستوعب إيش اللي ممكن يصير
الآن تعال نشوف بالـ Python بدي أشغل على نفس
الطريقة أو نفس الفكرة السابقة استخدمت الـ NumPy
ورحت وقلت له أنا في عندي Array لكن كل رو في الـ
Array بيحتوي على two attributes أو two variables
خمسة وثلاثة يعني الـ attribute X1 خمسة في الصف
الأول X2 ثلاثة X1 سبعة X2 خمسة وهكذا والـ Y ده هي
الـ value تبعتهم لاحظوا ما تغيرش معايا ولا حاجة أنا
غير إنّي غيرت بس الـ X الـ attributes تبعي صارت في
الـ 2D dimension 2D array ولاحظوا ما كنتش محتاجة reshape
لأن خلاص ليش؟ لأن أنا كنت بدي حلقة في صفوف في صفوف
وانتهى الأمر هنا مافيش داعي إنّي أعمله Reshape الـ y
.unarray وهي الـ target attribute تبعي نفس الكلام
from sklearn.linear_model import Linear
Regression بنيت الموديل وعملت له fit فهنا راح
تعرف أو بنى الموديل وحدد الـ intercept أحدد قيمة الـ
slope للـ attribute الأول والـ attribute الثاني أو
الـ coefficient للـ attribute الأول والـ attribute
الثاني لو أنا طبعت بنفس الطريقة السابقة قلت له الـ
model.coefficient و الـ model.intercept طبع ليهم،
لاحظوا أنّه طبع ليها الـ model.coefficient جاب ليهم
على إنهم مصفوفة لأ وفيه two variables أو two
values ليش؟ لأن أنا فعليًا عندي two independent
attributes X1 و X2 فأنا رحت بس جملتها أكثر و
فصلتهم وطبعتهم بالشكل هذا قلت له model
.coefficient[0] عشان أجيب القيمة الأولى ضربتها في
X1 as a text زائد عشان أطبع معادلة الخط الـ .. أو
بلاش الـ .. الـ linear space اللي موجود عندي هذا
تمام وبالتالي ما اتغيرش عندي في الشغل ولا حاجة إنّه
غير إنّه data set طب لو أنا بعد data set بعد شو بدأ
أُساوي بدل ما كنت أنا آخذ أو أخدت عمود واحد الآن
بدأ آخذ عمودين أو ثلاثة أو أربعة عشان الـ linear
regression اللي مولود خلينا ننتقل للـ nonlinear مش
ضايل كتير عندنا في الـ slides nonlinear regression
nonlinear معناته أنا بتكلم على nonlinear line أنا
في عندي خط لكن الخط هذا غير مستقيم أو ممكن يكون في
عندي surface الـ surface هذا ممكن يكون على شكل
دائرة
مائلة أو slow أو ellipse بالشكل هذا فأنا الآن بقول
نتكلم على خط مستقيم الآن لما الـ data ما بتظهرش عندي
linear dependency
معناته أنا ممكن أَدور على accurate أو أحصل على
accurate model لو في حالة إن كان في عندي non
linear regression يعني بين قرصين الجامعة الاختيار
أنا ممكن أجرب وأجرب الـ linear وأجرب الـ non
linear وأشوف إيش المعادلة الأفضل example لو أنا
قلت لك هي في عندي y تساوي w0 الـ intercept لو أنا
بدي أتكلّم على معادلة خط اللي هي نقطة التقاطع مع الـ
y يوجد الـ Y و الـ W الـ coefficient تبع المتغير
الأول العلاقة الخطية الـ Y و W الـ W الـ Y و W الـ
W الـ Y و W الـ W الـ Y و W الـ W الـ Y و W الـ Y و W
الـ Y و W الـ Y و W الـ Y و W الـ Y و W الـ Y و W
الـ Y و W الـ الـ equation تبعي بتأخذ different
forms أشكال مختلفة زي ما شفنا في ملف الـ Excel و
هنرجع لها على السريع في ملف الـ Excel لما قلت له الـ
line trend أو الـ trend line كان فيه عنده
exponential عنده linear عنده logarithmic عنده
polynomial عنده power إلى آخره الآن أنا فيه عنده
الـ exponential والعلاقة ما بين الـ y و الـ x إن الـ X
موجودة كأساس للـ exponential value E أساس B ضرب X و
الـ B هي الـ intercept اللي احنا بتكلم عليها يعني
الـ coefficient تبع الـ X الـ power value برضه
أنا ما زلت بتكلم هنا هذه
المعادلة اللي موجودة عندي هنا الـ growth saturation
model تبعها وفي عندي الـ polynomial اللي احنا
شوفناها قبل لحظات polynomial هذا الرسمة لو كان
عندي بيانات ورحت رسمتها وقلت لها ارسم لي الـ
trend اللي موجود ارسم لي المعادلة اللي موجودة مش
هيكون في عندي مشكلة لأن هذه مستحيل أنا ألاقي خط
مستقيم ما بين النقطة هاي ونقطة هاي والنقطة
هاي مباشرة ليش؟ لأن الخط المستقيم أبعد لكن لو
أنت قلت له والله أنا ممكن أتكلم عن خط مستقيم في
المنطقة high نسبة الخطأ أقل لكن في الأول مستحيل
يكون لكن واضح إن الـ trend تبعها non-linear
يعني أنا بدي أجرب وأحاول للفهم للـ data وعلاقة الـ
attributes اللي اشتغل عليها هو اللي بيحدد أنا فعلا
هأشتغل على linear ولا على non-linear طيب في الموضوع
الـ evaluation يا جماعة الخير في الموضوع الـ
evaluation أنا بدي في عندي prediction في عندي true
values هي لأن خلينا أهم metric لقياس الـ regression
هو الـ root mean square error والبعض يعتمد فقط على
الـ mean square error وليس فرق كتير لأنّي أريد
فرق وأزيل الجذر بعد ذلك لكن الـ root mean square
error ماهو الـ error اللي موجود عندي؟ الـ error هي
عبارة عن الـ actual value ناقص الـ Predicted Value
لأن أنا بتكلم على continuous بتكلم على continuous
value أنا عامل الـ prediction والـ actual value
لازم تكون continuous الفرق بينهم هو نسبة الخطأ
اللي موجود عندها لو بدي أجي للرسم يا جماعة الخير
هذه النقطة بتمثل الـ actual point النقطة الحقيقية
مصبوط؟ طيب والـ predicted value تبعها اللي هتكون
هنا اللي على الخط كذلك هنا، لاحظوا الـ distance
المسافة اللي هنا بحسب الـ Euclidean distance اللي
احنا شفناها لـ predicted value ناقص الـ true value
تربيع، مصبوط؟ هاي الـ Euclidean الآن لو أنا رحت
اجمعت كل المسافات هاي وجمعتها على عدد النقاط اللي
موجودة عندها أنا بكون حصلت على الـ mean square
error الـ mean square error بأخذها وبحطها تحت
الجذر اللي موجود عندها طبعا الـ Residual المقصود
فيه المسافة أو الـ Error الموجود بين العناصر اللي
موجودة عندك يعني بكل بساطة بأخذ الفروقات ما بين
squared error حسب، احنا الآن هطبقها، الـ main square
errorاللي في الـ slide السابق، هنا أنا كنت بتكلم على
الـ root اللي هي الجذر التربيعي اللي موجود
عندي هنا، فممكن أنت تستدعي كذلك الـ print الـ mean
square error percent to F عشان بقى يجيب لي الـ two
digits بعد الفاصلة العشرية، الـ mean square error هي
الدالة اللي استدعيتها هنا، أو الـ metric اللي
استدعيته، وزودته بالـ y test و الـ y predicted، و
يديني الـ value اللي موجودة عندنا، وبهيك بنكون احنا
فعلياً انتهينا من موضوع الـ regression، شابتر ظريف و
خفيف نشتغل عليه، بتمنى يكون... بقدر أتوصل الفكرة
بشكل كويس، لكن في عندنا شغل آخر، اللي علاقة بالـ
assignment، لما أتكلم عن الـ assignment، أنا مش عارف
مش عامله hide، أتكلم بالـ assignment إنه جامعة الخير،
لازم احنا نشتغل و نطبق مع بعض، لازم لازم لازم الآن
إيش مطلوب منك؟ أنت في عندك data set، عندك data set، و
الـ data set تبعتك مخصصة للـ linear regression،
ريجريشن أو nonlinear regression، احنا لسه ما بنعرف
بدك تروح على الـ data set اللي موجود عندكم، و تفحص
تتعرف على الـ data set بشكل كويس، وبعد هيك تروح
تختار multiple attributes
تعمل regression
(repeated "تعمل" removed)
(removed extra "ت")
تقارن بين كل الحالات اللي موجودة، يعني بالتفصيل
بالآخر، بالتفصيل، بدك تروح تجرب linear regression،
simple linear regression، و multiple linear
regression، ماشي الحال على one attribute، وعلى two
attributes، الـ multiple اعتبرها two، والـ simple
الاعتبرها one، لكن الـ multiple تكون two attributes،
at least، بتطبق عليها Linear، وتطبق عليها Unlinear،
طبعاً المفروض هذا يتسلم يوم اثنين عشر اثنين، لكن بما أن
التواريخ كلها اتغيرت، فبكون في عندنا تاريخ تاني
للتسليم، وحوضح أكتر إن شاء الله تعالى، إن خلال الـ
model، بتمنى لكم التوفيق، وأتمنى يكون الموضوع الـ
regression واضح بالنسبة لكم، وإذا في أي استفسار
الـ model من خلال الـ model أو الـ email، أو جلسات
النقاش اللي هنعملها لاحقاً، السلام عليكم ورحمة الله
وبركاته